Android Studio Multiple Dex Dateien Gradle Fehler

Ich bekomme diesen Fehler, wenn ich Run-> App für eine Android-Anwendung in Android Studio

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/google/common/annotations/Beta; ... 

Und hier ist die Ausgabe von gradlew -q: app: Abhängigkeiten

  • Android System App Info
  • Android 4.0: Widgets nicht angezeigt?
  • Wie erstelle ich unsicheres RFCOMM Socket in Android?
  • SIGILL im Android-NDK-Code
  • So legen Sie ein großes Symbol für die GCM-Benachrichtigung fest
  • Android - Einstellung LayoutParams programmgesteuert
  •  +--- project :shared +--- com.google.api-client:google-api-client:1.19.0 | +--- com.google.oauth-client:google-oauth-client:1.19.0 | | +--- com.google.http-client:google-http-client:1.19.0 | | | +--- com.google.code.findbugs:jsr305:1.3.9 | | | \--- org.apache.httpcomponents:httpclient:4.0.1 | | | +--- org.apache.httpcomponents:httpcore:4.0.1 | | | +--- commons-logging:commons-logging:1.1.1 | | | \--- commons-codec:commons-codec:1.3 | | \--- com.google.code.findbugs:jsr305:1.3.9 | +--- com.google.http-client:google-http-client-jackson2:1.19.0 | | +--- com.google.http-client:google-http-client:1.19.0 (*) | | \--- com.fasterxml.jackson.core:jackson-core:2.1.3 | \--- com.google.guava:guava-jdk5:13.0 +--- com.google.http-client:google-http-client-gson:1.19.0 | \--- com.google.code.gson:gson:2.1 +--- com.google.api-client:google-api-client-android:1.19.0 | +--- com.google.api-client:google-api-client:1.19.0 (*) | \--- com.google.http-client:google-http-client-android:1.19.0 | \--- com.google.http-client:google-http-client:1.19.0 (*) +--- com.google.http-client:google-http-client-android:1.19.0 (*) +--- com.google.guava:guava:14.0.+ -> 14.0.1 +--- project :backend-appengine | \--- com.google.api-client:google-api-client-android:1.19.0 (*) +--- com.android.support:appcompat-v7:20.0.0 | \--- com.android.support:support-v4:20.0.0 | \--- com.android.support:support-annotations:20.0.0 +--- com.google.android.gms:play-services:5.0.89 \--- com.google.maps.android:android-maps-utils:0.3.+ -> 0.3.1 

    Hier ist der Abhängigkeitsblock von build.gradle

     dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':shared') // Add the Google API client library. compile(group: 'com.google.api-client', name: 'google-api-client', version: '1.19.0') { // Exclude artifacts that the Android SDK/Runtime provides. exclude(group: 'com.google.guava') //-- !!! this does not seem to work !!! exclude(group: 'xpp3', module: 'xpp3') exclude(group: 'org.apache.httpcomponents', module: 'httpclient') exclude(group: 'junit', module: 'junit') exclude(group: 'com.google.android', module: 'android') exclude(group: 'com.google.http-client', module: 'google-http-client') } compile('com.google.http-client:google-http-client-gson:1.19.0') { exclude module: 'httpclient' exclude(group: 'com.google.http-client', module: 'google-http-client') } compile(group: 'com.google.api-client', name: 'google-api-client-android', version: '1.19.0') { exclude(group: 'com.google.android.gms', module: 'play-services') exclude group: 'com.google.guava', module: 'guava-jdk5' } compile(group: 'com.google.http-client', name: 'google-http-client-android', version: '1.19.0') { exclude(group: 'com.google.android', module: 'android') } // This is used by the Google HTTP client library. compile(group: 'com.google.guava', name: 'guava', version: '14.0.+') //-- endpoints dependencies { compile project(path: ':backend-appengine', configuration: 'android-endpoints') } compile 'com.android.support:appcompat-v7:20.0.0' compile ('com.google.android.gms:play-services:5.0.89') { exclude(group: 'com.android.support', module: 'support-v4') } compile ('com.google.maps.android:android-maps-utils:0.3.+') { exclude(group: 'com.google.android.gms', module: 'play-services') } } 

  • Android SQLite Datenbank: SQLiteDiskIOException: Disk I / O Fehler (Code 1802)
  • ChildFragmentManager java.lang.IllegalStateException: Aktivität wurde zerstört
  • Leanback.DetailsFragment läuft nicht wie erwartet
  • So fügen Sie mehr Frame wie Nexus 6P, 5X etc in Screenshots in Android Studio
  • Android AudioRecord vs. MediaRecorder für die Aufnahme von Audio
  • Access-Control-Allow-Origin Fehler bei Android 4.1
  • 4 Solutions collect form web for “Android Studio Multiple Dex Dateien Gradle Fehler”

    Das Paket com.google.common.annotations scheint Teil von Guava zu sein. Ich sehe es in den Abhängigkeiten zweimal in leicht unterschiedlichen Variationen: einmal als Teil des Google API Clients, einmal als eigene Abhängigkeit:

     +--- com.google.api-client:google-api-client:1.19.0 | \--- com.google.guava:guava-jdk5:13.0 

    und

     +--- com.google.guava:guava:14.0.+ -> 14.0.1 

    Also die Ursache für diesen Fehler ist, dass Sie die gleichen Klassen in mehreren Dex-Dateien (in verschiedenen Variationen der Guava-Bibliothek), die von Ihren anderen Abhängigkeiten enthalten sind definiert. Sie müssen einen Weg finden, diese doppelten Abhängigkeiten auszuschließen, oder möglicherweise nur sicherzustellen, dass Sie die gleiche Version über alle Abhängigkeiten verwenden.

    Eine Sache, die Sie versuchen könnten, ist, das Guave-Modul von einer der Abhängigkeiten auszuschließen. Also, wo Sie das API-Client-Modul definiert haben, fügen Sie eine Ausschlussregel für das Guave-Modul hinzu:

     compile ('com.google.api-client:google-api-client:1.19.0') { exclude group: 'com.google.guava', module: 'guava-jdk5' } 

    Ich kann nicht garantieren, dass dies keine Probleme für die Google API Client-Bibliothek verursacht (da sie zwei verschiedene Versionen von Guava sind), aber es ist einen Versuch wert.

    BEARBEITEN: Von deinen depdencies versuchen sie zu ändern:

     compile(group: 'com.google.api-client', name: 'google-api-client', version: '1.19.0') { // Exclude artifacts that the Android SDK/Runtime provides. exclude(group: 'com.google.guava') //-- !!! this does not seem to work !!! 

    nach:

     compile(group: 'com.google.api-client', name: 'google-api-client', version: '1.19.0') { exclude(group: 'com.google.guava', module: 'guava-jdk5') 

    Die Google-Api-Client-Android-Bibliothek enthält eigentlich keine Guave – ich wusste nicht, dass Sie dort zwei gleichnamige Abhängigkeiten hatten.

    Für diejenigen, die Google Cloud Endpunkte in Android App verwenden:

     compile(project(path: ':backend', configuration: 'android-endpoints')) { exclude(module: 'guava-jdk5') } 

    Wo backend ist Name Ihres Moduls mit AppEngine App.

    In jedem anderen Fall nur für guava-jdk5 transitive Abhängigkeit suchen und ausschließen.

    Es scheint, dass du nicht beide guave und guava-jdk5 im selben Projekt verwenden kannst. Guava-jdk5 wird immer noch beibehalten, also erwäge die Änderung deines Projekts Guave Verweis auf guava-jdk5:

     compile 'com.google.guava:guava-jdk5:17.0' 

    Hier ist die richtige Lösungslösung, für mich gearbeitet. Ohne das guava-jdk5-Abhängigkeitsmodul von jedem einzelnen Import ist kontraproduktiv (für mich hat es nicht funktioniert, weil ich einige interne Abhängigkeiten aus meinem Backend hatte, von denen meine App abhängt, und das macht die eigentliche Frage mit diesem Ansatz aus).

    Das folgende löste das Problem und ist der empfohlene Ansatz:

     configurations { all*.exclude group: 'com.google.guava', module: 'guava-jdk5' } 

    Quelle : https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.Configuration.html

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.