Fehlerhafte oder falsche Verwendung einer Core-Klasse (java. * oder javax. *), wenn keine Core-Bibliothek erstellt wird

8

Wenn ich mein Projekt säubere, erhalte ich den folgenden Fehler:

%Vor%

Dies ist oft darauf zurückzuführen, dass versehentlich eine Kernbibliotheksdatei eingefügt wird im Projekt Ihrer Anwendung, wenn Sie eine IDE verwenden (wie z Finsternis). Wenn Sie sicher sind, dass Sie nicht absichtlich ein Kernklasse, dann ist dies die wahrscheinlichste Erklärung dessen, was ist los.

Sie könnten jedoch tatsächlich versuchen, eine Klasse in einem Kern zu definieren Namensraum, dessen Quelle Sie zum Beispiel genommen haben, von einem Nicht-Android-Projekt für virtuelle Maschinen. Das wird am meisten sicherlich nicht arbeiten. Zumindest gefährdet es die Kompatibilität Ihrer App mit zukünftigen Versionen der Plattform Es ist auch oft von fragwürdiger Rechtmäßigkeit.

Wenn Sie wirklich beabsichtigen, eine Core-Bibliothek zu erstellen - das ist nur geeignet als Teil der Erstellung einer vollständigen virtuellen Maschine Verteilung, im Gegensatz zum Erstellen einer Anwendung - dann verwenden die Option "--core-library", um diese Fehlermeldung zu unterdrücken.

Wenn Sie weitermachen und "--core-library" verwenden, sind Sie in der Tat Erstellen Sie eine Anwendung, dann seien Sie vorgewarnt, dass Ihre Anwendung wird es irgendwann immer noch nicht schaffen zu bauen oder zu laufen. Bitte sei vorbereitet für verärgerte Kunden, die zum Beispiel finden, dass dein Die Anwendung funktioniert nicht mehr, wenn sie ihren Betrieb aktualisiert hat System. Sie werden für dieses Problem verantwortlich sein.

Wenn Sie rechtmäßig Code verwenden, der zufällig in einer Kernpaket, dann ist die einfachste sichere Alternative, die Sie haben den Code neu verpacken. Das heißt, verschieben Sie die fraglichen Klassen in Ihr eigener Paket-Namespace. Das bedeutet, dass sie niemals drin sein werden Konflikt mit Core-System-Klassen. JarJar ist ein Werkzeug, das helfen kann Sie in diesem Bestreben. Wenn Sie feststellen, dass Sie dies nicht tun können, dann Das ist ein Hinweis darauf, dass der Weg, auf dem du dich befindest, letztendlich ist führen zu Schmerz, Leid, Trauer und Klage.

%Vor%     
James 05.10.2011, 12:51
quelle

4 Antworten

4

Ich hatte dieses Problem. Ich benutze Maven, um meine Android-Projekte zu bauen. Mein Problem wurde von einer meiner Abhängigkeiten abhängig von den Android-Gläsern verursacht. Ich habe meinen Pom aktualisiert, um Android von dieser Abhängigkeit auszuschließen, und das hat es für mich gelöst.

%Vor%

Hoffe, das hilft jemandem, es hat eine Weile gedauert, bis ich herausgefunden hatte, was vor sich ging.

    
reassembler 13.09.2012 15:13
quelle
2

Zum Vorteil von allen, die darüber gestolpert sind, kann dieses Problem durch die Einbeziehung einer älteren Bibliothek wie android.jar verursacht werden. Wenn Sie die Datei .jar aus Ihrem Buildpath entfernen, können Sie sie kompilieren. Andernfalls können Sie das in der Fehlermeldung genannte "jarjar" verwenden, um die Datei .jar in ein anderes Paket zu verschieben.

    
wovenhead 28.06.2014 02:49
quelle
1

Ihre IDE ist falsch konfiguriert. Stellen Sie sicher, dass Ihre Skripts oder IDE rt.jar oder android.jar nicht an dx weitergibt.

    
Jesse Wilson 07.10.2011 23:22
quelle
0

In Android Studio hatte ich Java und JAVA-JAR-Dateien in meinen lib -Ordner aufgenommen, und es gab Abhängigkeiten in Bezug auf sie (in build.gradle auf App-Ebene). Ich habe sie auskommentiert.

%Vor%

Dann ging ich zur Projektansicht und löschte die Jar-Dateien. Es gab einige Legacy-Instanzen von java.awt.geom, die ich löschen musste, aber das Projekt neu erstellt und dann ging es mir gut.

    
tony gil 21.04.2016 19:09
quelle

Tags und Links