2016-04-25 14 views
0

Ich arbeite an einer Android App mit Android Studio für die Schule und ich versuche, Jersey Client zu verwenden, um die App mit meinen Webdiensten zu verbinden. Der folgende Fehler wird angezeigt, wenn ich versuche, die für den Jersey-Client erforderlichen JAR-Dateien hinzuzufügen und das Projekt zu kompilieren.Fehler: Ausführung fehlgeschlagen für Task ': app: dexDebug'.

Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

Von etwa für eine Lösung dieses Problems suchen scheint es mir, es geschieht, weil ich eine 65k Grenze auf Methoden am Überschreiten durch die Gläser hinzufügen. Ich habe auch gesehen, dass dies behoben werden kann, indem ich Multidex-Unterstützung benutze, die ich versucht habe zu implementieren, aber der Fehler bleibt, wenn ich die Gradle kompiliere.

Hier ist meine build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "com.example.williamj.hertz" 
     minSdkVersion 15 
     targetSdkVersion 23 
     multiDexEnabled true 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    packagingOptions{ 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/LISCENSE.txt' 
     exclude 'META-INF/LISCENSE' 
     exclude 'META-INF/liscense.txt' 
    } 
    dexOptions{ 
     incremental true 
     preDexLibraries = false 
     javaMaxHeapSize "4g" 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
    compile 'com.android.support:recyclerview-v7:23.1.1' 
    compile 'com.parse:parse-android:1.10.0' 
    compile 'com.parse.bolts:bolts-android:1.+' 
    compile 'com.github.flavienlaurent.datetimepicker:library:0.0.2' 
    compile 'com.google.android.gms:play-services:8.4.0' 
    compile 'com.android.support:support-v4:23.1.1' 
    compile 'com.android.support:multidex:1.0.1' 

} 

Und hier ist ein Teil meiner AndroidManifest wo ich multidex Unterstützung

<application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:largeHeap="true" 
     android:name="android.support.multidex.MultiDexApplication"> 

Ich gehe davon aus, dass ich die Umsetzung einfach nicht multidex hinzugefügt haben richtig unterstützen. Jede Hilfe bei der Behebung dieses Fehlers wäre sehr dankbar, danke.

Antwort

0

Haben Sie Ihre Anwendungsüberschreibung attachBaseContext:

@Override 

protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 

Link: http://developer.android.com/tools/building/multidex.html

2. Methode: Ich habe auch bemerkt, dass Sie alle Google Play-Dienste sind zB:

compile 'com.google.android.gms:play-services:8.4.0' 

Sie sein kann Sie können dieses Problem bei der Kompilierung Ihrer App beheben, indem Sie nur die spezifischen Google Play-Dienst-APIs angeben, die von Ihrer App verwendet werden eine von allen. Informationen dazu finden Sie unter: https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project