Mehrere dex-Dateien definieren, Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat mit Gradle

Wenn ich ./gradlew assembleDebug ich bin immer:

:app:dexDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/grub/Main/android-sdk-linux/build-tools/19.1.0/dx --dex --num-threads=4 --output 

Liste der zusammengeführten Klassen und jar-Dateien:

UNEXPECTED TOP-LEVEL EXCEPTION:
        com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

Ist es sehr ähnlich zu diese Frage und problem sollte in mehrere support-v4-Bibliotheken. Ich räumte build.gradle :

repositories {
    maven { url "http://dl.bintray.com/populov/maven" }
    mavenCentral()
}

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 8
        versionName "2.1.17"
    }
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:support-v4:20.+'
        compile ('com.google.android.gms:play-services:5+'){
            exclude group: 'com.android.support', module: 'support-v4'
        }
        compile(project(':libraries:com.typefacedwidgets')) {
            exclude group: 'com.android.support', module: 'support-v4'
        }
        compile(project(':libraries:com.truepagerindicator')) {
            exclude group: 'com.android.support', module: 'support-v4'
        }
        compile ('com.sothree.slidinguppanel:library:+'){
            exclude group: 'com.android.support', module: 'support-v4'
        }
        compile ('com.github.chrisbanes.pulltorefresh:sample:2.1.1+'){
            exclude group: 'com.google.android', module: 'support-v4'
        }
        compile 'com.thoughtworks.xstream:xstream:1.4.7'
        compile 'com.squareup.retrofit:retrofit:1.6.1'
        compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
        compile 'com.squareup.okhttp:okhttp:2.0.0'
        compile 'com.google.code.gson:gson:2.3'
        compile 'de.greenrobot:eventbus:2.2.1'
    }
}

Überprüfen von Abhängigkeiten habe ich ./gradlew -q -dependencies die zeigt:

+--- com.android.support:support-v4:20.+ -> 20.0.0
|    \--- com.android.support:support-annotations:20.0.0
+--- com.google.android.gms:play-services:5+ -> 5.2.08
+--- project :libraries:com.typefacedwidgets
+--- project :libraries:com.truepagerindicator
+--- com.sothree.slidinguppanel:library:+ -> 2.0.1
|    \--- com.nineoldandroids:library:+ -> 2.4.0
+--- com.github.chrisbanes.pulltorefresh:sample:2.1.1+ -> 2.1.1
|    +--- com.github.chrisbanes.pulltorefresh:library:2.1.1
|    +--- com.github.chrisbanes.pulltorefresh:extra-listfragment:2.1.1
|    |    \--- com.github.chrisbanes.pulltorefresh:library:2.1.1
|    \--- com.github.chrisbanes.pulltorefresh:extra-viewpager:2.1.1
|         \--- com.github.chrisbanes.pulltorefresh:library:2.1.1
+--- com.thoughtworks.xstream:xstream:1.4.7
|    +--- xmlpull:xmlpull:1.1.3.1
|    \--- xpp3:xpp3_min:1.1.4c
+--- com.squareup.retrofit:retrofit:1.6.1
|    \--- com.google.code.gson:gson:2.2.4 -> 2.3
+--- com.squareup.okhttp:okhttp-urlconnection:2.0.0
|    \--- com.squareup.okhttp:okhttp:2.0.0
|         \--- com.squareup.okio:okio:1.0.0
+--- com.squareup.okhttp:okhttp:2.0.0 (*)
+--- com.google.code.gson:gson:2.3
\--- de.greenrobot:eventbus:2.2.1

Scheint es, wie es sein sollte, OK, aber problem bleibt das gleiche.

UPDATE:

War das problem in apkLib Abhängigkeit und verwirren msg von Gradle. Es war so lösen, wie in diese Antwort putting Android-PullToRefresh in separate android-library-Projekt in Gradle.

In meinem Fall ähnlich Fehler aufgetreten ist, da mehrere support-v4-jar-Dateien. Um es zu lösen, ging ich zum Build Path > Configure Build Path > Registerkarte "Bibliotheken". Dann suchen Sie Android private libraries und entfernt. Reinigen Sie das Projekt, und ausführen.
Gadhave Was meinst du damit? Ich bin aus, alle anderen support-v4-Bibliotheken von anderen Abhängigkeiten und Links nur eins. Aber es stehlen auftreten.
mögliche Duplikate von Pulltorefresh hinzufügen zu gradle
Ich denke, es ist immer verwirrt, weil Sie versuchen zu ziehen aus dem Beispiel als eine Abhängigkeit, die hat eine transitive Abhängigkeit auf die apklib, und Gradle nicht wissen, was zu tun mit apklibs. ALS ein beiseite, die Ihr ausschließen, für pulltorefresh eingerichtet ist falsch (ABG.android.Unterstützung, nicht com.google.android), aber die Befestigung löst es nicht das problem
Ich habe eingereicht code.google.com/p/android/issues/detail?id=75039 über diese; Gradle sollte eine bessere Fehlermeldung, wenn Sie versuchen, hängen apklib.

InformationsquelleAutor ar-g | 2014-08-19

Schreibe einen Kommentar