2015-03-25 17 views
8

Sto sperimentando quel famoso errore ': app: preDexDebug'.Esecuzione non riuscita per l'attività: ': app: preDexDebug'

Prima di tutto: la pulizia del progetto o la ricostruzione funziona senza errori. Sotto le impostazioni di default ho impostato la versione bytecode del progetto su 1.7 e sotto SDK Location nella struttura del progetto anche la posizione JDK sembra essere corretta. Dopo un po 'di ricerche non ho ancora trovato la soluzione per questo problema.

L'errore si verifica quando si tenta di eseguire il progetto in Android Studio. Come accennato in precedenza, la pulizia, la ricostruzione e la sincronizzazione con Gradle funziona correttamente (sembra che sia - nessun errore).

Questo è ciò che la console Gradle mostra:

Configuration on demand is an incubating feature. 
:app:preBuild UP-TO-DATE 
:app:preDebugBuild UP-TO-DATE 
:app:compileDebugNdk UP-TO-DATE 
:app:checkDebugManifest 
:app:prepareDebugDependencies 
:app:compileDebugAidl UP-TO-DATE 
:app:compileDebugRenderscript UP-TO-DATE 
:app:generateDebugBuildConfig UP-TO-DATE 
:app:generateDebugAssets UP-TO-DATE 
:app:mergeDebugAssets UP-TO-DATE 
:app:generateDebugResValues UP-TO-DATE 
:app:generateDebugResources UP-TO-DATE 
:app:mergeDebugResources UP-TO-DATE 
:app:processDebugManifest UP-TO-DATE 
:app:processDebugResources UP-TO-DATE 
:app:generateDebugSources UP-TO-DATE 
:app:compileDebugJava UP-TO-DATE 
:app:preDexDebug 
AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} 
AGPBI: {"kind":"SIMPLE","text":"com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)","position":{},"original":"com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processClass(Main.java:704)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processClass(Main.java:704)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.access$300(Main.java:83)","position":{},"original":"\tat com.android.dx.command.dexer.Main.access$300(Main.java:83)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)","position":{},"original":"\tat com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processOne(Main.java:632)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processOne(Main.java:632)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)","position":{},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat com.android.dx.command.Main.main(Main.java:106)"} 
AGPBI: {"kind":"SIMPLE","text":"...while parsing impl/org/controlsfx/ImplUtils.class","position":{},"original":"...while parsing impl/org/controlsfx/ImplUtils.class"} 
AGPBI: {"kind":"SIMPLE","text":"1 error; aborting","position":{},"original":"1 error; aborting"} 


FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:preDexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_67\bin\java.exe'' finished with non-zero exit value 1 

Come potete vedere qui sotto, ho rimosso il - riga nel mio build.gradle, ma ancora non ha funzionato "Android compilazione ...". . Così qui è la mia Gradle build file:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion '22.0.1' 
    compileOptions.encoding = 'windows-1251' 

    defaultConfig { 
     applicationId "de.giessen.advenco.key2operate" 
     minSdkVersion 15 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

Sembra Gradle ha qualche problema con la mia JDK, ma non so che tipo di e come risolverli. Spero che voi ragazzi potete aiutare.

EDIT: Ho scoperto che version (0034.0000) significa che sto usando Java 8. La cosa strana è che non uso Java 8. In Android Studio ho definito il percorso JDK a "C:\Program Files\Java\jdk1.7.0_67". Questo è 64-Bit Java (sto usando Win 7 64-Bit btw.). Oltre a questo ho Java a 32 bit allo "C:\Program Files (x86)\Java\jdk1.7.0_75", ma non sto indicando la sua posizione da Android Studio (ho bisogno di entrambe le versioni sul mio computer). Qualcuno sa, perché Android Studio pensa che io abbia Java 8 sulla mia macchina? Come puoi vedere nel mio file build di gradle, ho impostato lo sourceCompatibility e lo su JavaVersion.VERSION_1_7. Ci sono delle impostazioni nascoste da qualche parte in Android Studio, che definiscono l'impostazione Java 8?

risposta

1

Risolto.

Cosa mi ha confuso: l'uscita com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)","position":{},"original":"com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)" mi lascia pensare che l'errore proviene da alcune librerie Android, perché ogni impostazione JDK era impostata su 1.7.

Ma sapevo che da qualche parte si usava Java 8. Era davvero strano per me.

Soluzione: anche se è stata visualizzata la notifica di permment di usare --stacktrace o --debug, non sapevo dove usarli (non è stato spiegato da nessuna parte). Dopo aver cercato le impostazioni mi sono imbattuto nel campo di testo per questa opzione. Così ho scritto "--debug" in esso. Questa opzione mi ha dato informazioni su ciò che realmente causa l'errore. Grazie alla modalità debug è stato dato il titolo della libreria, che ha causato l'errore utilizzando Java 8. Poiché Eclipse non si lamenta di ciò, nessuno nella mia azienda si è preso cura di questo. Cosa mi fa pensare in cambio, che tutto doveva essere corretto.

per rendere le cose breve: Se si verificano errori, come molte persone prima, ma le loro soluzioni non funzionano o il vostro caso sembra essere molto speciale, basta usare "--debug". Le informazioni vere sono nascoste lì.

+1

Sarebbe utile dire solo * dove * esattamente hai messo questo bel piccolo interruttore di debug ... :( – Zordid

+2

nel terminale scrivi "gradlew - -debug "o r per renderlo disponibile ogni volta File-> Impostazioni-> Costruisci, Esegui, Deployment-> Compilatore e rispetto al campo Opzioni da riga di comando aggiungi "--stacktrace --debug" – Ewoks

+0

controlla qui, versione java sdk maschile a 1.7 http://stackoverflow.com/questions/19608742/how-to-set-java-sdk-path-in-androidstudio –

0

Ho avuto lo stesso problema.

Per me funziona: buildToolsVersion '21.1.2' Ha mostrato AGPBI come avvertimento, ma è ancora possibile compilare.

+0

Grazie per la tua rispondi, ma il mio problema persiste, dopo aver cambiato la versione degli strumenti di compilazione a 21.1.2 – KJaeg

1

Per aggiungere --debug (o - stacktrace) andare su File .. Impostazioni .. Build, Execution, Deploy .. Compilatore ..Argomenti della riga di comando

+0

come aggiungere "--debug"? Potresti mostrare un codice di esempio? grazie – user1571055

1

andare su File> Altre Impostazioni> Impostazioni predefinite> Crea, di esecuzione, Deploy> complier e aggiungere i seguenti argomenti per riga di comando Argomenti

--debug --stacktrace 

Screenshot here

Problemi correlati