2017-10-30 3 views
5

Ich erhalte die folgende Fehlermeldung zu erzeugen, wenn Versuch APK in Android Studio 3Störung zu erhalten, während versuchen android Studio unterzeichnet APK 3

Error:trouble processing "javax/xml/namespace/QName.class": 
Error:Ill-advised or mistaken usage of a core class (java.* or javax.*) 
Error:when not building a core library. 
Error:This is often due to inadvertently including a core library file 
Error:in your application's project, when using an IDE (such as 
Error:Eclipse). If you are sure you're not intentionally defining a 
Error:core class, then this is the most likely explanation of what's 
Error:going on. 
Error:However, you might actually be trying to define a class in a core 
Error:namespace, the source of which you may have taken, for example, 
Error:from a non-Android virtual machine project. This will most 
Error:assuredly not work. At a minimum, it jeopardizes the 
Error:compatibility of your app with future versions of the platform. 
Error:It is also often of questionable legality. 
Error:If you really intend to build a core library -- which is only 
Error:appropriate as part of creating a full virtual machine 
Error:distribution, as opposed to compiling an application -- then use 
Error:the "--core-library" option to suppress this error message. 
Error:If you go ahead and use "--core-library" but are in fact 
Error:building an application, then be forewarned that your application 
Error:will still fail to build or run, at some point. Please be 
Error:prepared for angry customers who find, for example, that your 
Error:application ceases to function once they upgrade their operating 
Error:system. You will be to blame for this problem. 
Error:If you are legitimately using some code that happens to be in a 
Error:core package, then the easiest safe alternative you have is to 
Error:repackage that code. That is, move the classes in question into 
Error:your own package namespace. This means that they will never be in 
Error:conflict with core system classes. JarJar is a tool that may help 
Error:you in this endeavor. If you find that you cannot do this, then 
Error:that is an indication that the path you are on will ultimately 
Error:lead to pain, suffering, grief, and lamentation. 
Error:1 error; aborting 
Error:Execution failed for task ':_4SaleApp:transformClassesWithDexForRelease'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.android.dx.command.Main with arguments {--dex --num-threads=4 --multi-dex --main-dex-list /Volumes/Data/AMIRA/Work/Q84Sale/Q84Sale/_4SaleApp/build/intermediates/multi-dex/release/maindexlist.txt --output /Volumes/Data/AMIRA/Work/Q84Sale/Q84Sale/_4SaleApp/build/intermediates/transforms/dex/release/0 --min-sdk-version 16 /Volumes/Data/AMIRA/Work/Q84Sale/Q84Sale/_4SaleApp/build/intermediates/transforms/jarMerging/release/0.jar} 

jemand helfen kann bitte unterzeichnet zu generieren?

+0

stellen Sie sicher, dass Ihr Code keine Klasse oder Funktionen von nicht unterstützt Java oder Android-Code hat. –

+0

Wie kann ich das wissen, der Fehler zeigt keinen Hinweis auf die Datei, die das Problem machen –

+0

[This] (https://Stackoverflow.com/a/10176710) Antwort kann Ihnen zu diesem Thema helfen. – Fio

Antwort

0

Ich sah den gleichen Fehler. In meinem Fall passierte das, weil ich Logback einschloss. Hinzufügen der folgenden das Problem für mich gelöst (wie here beschrieben):

compile('com.github.tony19:logback-android-classic:1.1.1-6') { 
    exclude group: 'com.google.android', module: 'android' 
} 

Nach der obigen Zugabe ich noch ein Problem zu sehen (wie here beschrieben) und ich hatte folgendes hinzuzufügen:

configurations { 
    all { 
     exclude module: 'httpclient' 
    } 
} 
1

Die XPP-Antwort funktionierte nicht für mich. Die meisten Antworten mit Querverweis ignorieren, dass dies durch andere Bibliotheksabhängigkeiten (z. B. JARs/AARs) verursacht werden kann. In meinem Fall trat dieser Fehler nur während des signierten Builds auf - unsignierte Builds waren in Ordnung.

Beim Ausführen von 'grdlew: [MY-PROJECT]: Abhängigkeiten' wird der vollständige Abhängigkeitsbaum angezeigt. Wenn Sie eine Abhängigkeit finden, die eine JAR oder Klassen in der javax/java-Namespace verwendet, dann können Sie eine gradle ausschließen Anweisung Ihre Abhängigkeit Erklärung, wie (gradle 4.1+) hinzufügen:

api('my.favorite.dependency') { exclude group: 'javax' }

Dann laufen die Aufgabe 'Abhängigkeiten' erneut. Sie sollten sehen, dass die ausgeschlossene Abhängigkeit jetzt aus der Baumstruktur entfernt wird. Wenn diese Abhängigkeit für die Kompilierung erforderlich ist und nicht an anderer Stelle bereitgestellt wird, schlagen die Build */assemble * -Tasks fehl. Wenn die Abhängigkeit zur Laufzeit benötigt wird und nicht an anderer Stelle bereitgestellt wird, z. durch das Betriebssystem, dann die App. Kompiliert und schlägt dann zur Laufzeit mit einer "ClassNotFound" -Ausnahme fehl.

Im schlimmsten Fall, wenn der Abhängigkeitsbaum keine große Hilfe ist, müssen Sie möglicherweise die Abhängigkeiten und den Code, der sie verwendet, auskommentieren, um die Täterabhängigkeit zu finden. Hoffentlich wurde die Abhängigkeit, die diesen Fehler verursacht hat, kaum genutzt. Sobald Sie die Abhängigkeit gefunden haben, die den Fehler verursacht, müssen Sie die Situation auf eine von zwei Arten beheben. Ersetzen Sie das JAR/AAR durch etwas, das den Fehler nicht verursacht; oder erstellen Sie die Abhängigkeit neu, damit die javax/java-Klassen nicht mit dem JAR/AAR exportiert werden.

Verwandte Themen