2015-03-09 13 views
6

Ich komme gerade von Eclipse zu dem einschüchternden Android Studio und habe Schwierigkeiten, loszuwerden, was anscheinend ein ziemlich häufiger Fehler ist.Android Studio kann Fehler nicht beheben ': app: preDexDebug'

Error:Execution failed for task ':app:preDexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-oracle/bin/java'' finished with non-zero exit value 1 

sah ich am ganzen Körper und haben von der einfachen Neustart mein Studio, Invalidierung und Löschen des Cache, das Entfernen der JAR-Dateien bis hin verschiedene Lösungen ausprobiert und versucht, sie wieder zu schreiben, aber bisher nichts funktioniert. Ich bin sehr neu in dieser IDE, deshalb bin ich mir nicht einmal sicher, wie es funktioniert und wie die Build-Dateien aussehen sollen.

Hier ist meine aktuelle build.gradle (Modul: app)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.example.culami" 
     minSdkVersion 21 
     targetSdkVersion 21 
     compileOptions { 
      sourceCompatibility JavaVersion.VERSION_1_7 
      targetCompatibility JavaVersion.VERSION_1_7 
     } 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:21.0.3' 
    compile 'com.android.support:support-v4:21.0.3' 
    compile files('libs/WebSocket.jar') 
    compile files('libs/android-support-v13.jar') 
    compile files('libs/json-org.jar') 
    compile files('libs/socketio.jar') 
} 

Das Projekt von Eclipse-importiert wurde und der Grund dafür, so war, dass ich vor einigen Build Probleme mit json-org.jar und WebSocket .Krug. Ich konnte das und die issue is still open nicht beheben. Ich bin nicht sicher, wie diese Abhängigkeiten über Gradle hinzufügen, weil die GitHub-Seite nicht wirklich wie sagt.

Hier ist die Ausgabe von der Konsole Gradle.

Executing tasks: [:app:assembleDebug] 

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:preReleaseBuild UP-TO-DATE 
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE 
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE 
: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 UP-TO-DATE 
:app:dexDebug 
AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} 
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","position":{},"original":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","position":{},"original":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","position":{},"original":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","position":{},"original":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)"} 
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)"} 


FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:dexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-oracle/bin/java'' finished with non-zero exit value 2 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 23.247 secs 

Jede Hilfe, wie man diesen preDexDebug Fehler beheben kann, wird eine große Hilfe sein! Als Nebenbemerkung kann ich meinen "libs" -Ordner im Projekt-Explorer auf der linken Seite nicht sehen.

+0

Gradlew auf CLI. Lesen Sie, wie Sie es verwenden können. Fügen Sie dann --info --debug --stacktrace zu cli builds hinzu. Speichere cli stdout in eine Datei, wenn es für die große Ausgabe benötigt wird. Schauen Sie sich den Ausgang genau an. –

+0

Ich werde einen Blick auf die CLI werfen. Könnten Sie mich auf eine gute Ressource für das gleiche hinweisen? Außerdem weiß ich noch nicht, wie ich diese Ausgabe bekommen soll, aber ich werde versuchen, die Ausgabe zu bekommen und sie für eine bessere Übersicht auf die Frage hochzuladen. –

Antwort

7

Sie haben eine JAR-Datei oder eine lib mehrere Male erscheinen und müssen mit „Konfiguration“ im „gradle.build“

Look arbeiten, wie Abhängigkeiten zu analysieren mit so etwas wie:

./gradlew :app:dependencies 

background on wrapper

./gradlew --info clean assembleDebug > ../myProj_build 

geben Ihnen zusätzliche Informationen in einer Build-Datei, die Sie auf Ihrer „preDex“ Fehler analysieren können

4

Sie haben Ihre JAR-Abhängigkeiten als Kompilierabhängigkeit hinzugefügt. Sie sollten es als "zur Verfügung gestellt" hinzufügen, (siehe Sie in der README).

+1

Ja, das Skript build.gradle von 'compile fileTree (dir: 'libs', include: '* .jar')' ODER 'Kompilieren von Dateien ('libs/xyz.jar')' in 'bereitgestellten' fileTree (dir : 'libs', include: '* .jar') 'behebt das Problem, dieses Problem tritt jedoch auf, weil Android Studio das JAR automatisch als' compile files ('libs/xyz.jar') 'beim Benutzer ablegt wählt es als Bibliothek aus, es gibt keine Möglichkeit, zwischen dem Kompilierungs-Tag und dem bereitgestellten Tag zu wählen. – cyber101

Verwandte Themen