Android Studio多个dex文件gradle错误

埃兹

当我在Android Studio中为Android应用程序运行->应用程序时收到此错误

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

这是gradlew -q:app:dependencies的输出

+--- 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

这是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')
    }   
}
凯文·科波克

com.google.common.annotations包装似乎是番石榴的一部分。我在依赖项中两次看到它,但变化不大:一次是Google API客户端的一部分,一次是您自己的依赖项:

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

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

因此,导致此错误的原因是,您的其他依赖项包含了多个dex文件(在Guava库的不同版本中)定义的相同类。您需要找到一种方法来排除这些重复的依赖项,或者可能只是确保在所有依赖项中使用相同的版本。

您可以尝试的一件事是从其中一个依赖项中排除番石榴模块。因此,在定义了API客户端模块的地方,为guava模块添加一个排除规则:

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

我不能保证这不会对Google API客户端库造成问题(因为它们是Guava的两个不同版本),但是值得一试。

编辑:从您的依赖,尝试更改此:

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 !!!

到:

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

google-api-client-android库实际上并不包含Guava -我没有意识到您那里有两个名称相似的依赖项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android Studio Gradle错误:定义了多个dex文件

来自分类Dev

Android Gradle DexException:多个dex文件定义了Lorg / hamcrest / Description

来自分类Dev

Android Studio多个dex文件定义了Lcom / abc / xyz / BuildConfig

来自分类Dev

Android Studio多个dex文件定义了Lcom / abc / xyz / BuildConfig

来自分类Dev

Android Studio中的依赖关系(来自Eclipse)多个Dex文件

来自分类Dev

错误 com.android.dex.DexException:多个 dex 文件定义了 Lcom/google/android/libraries/places/internal/dh;

来自分类Dev

Android - 如何修复错误:多个 dex 文件定义了 Lorg/eclipse/paho/android/service/MqttAndroidClient$MyServiceConnection;

来自分类Dev

使用Gradle和Android Studio进行构建时,构建stORM会导致dex错误

来自分类Dev

Android Studio Gradle错误

来自分类Dev

Android Studio / Gradle错误

来自分类Dev

Android Maven插件生成多个dex文件

来自分类Dev

Android-无法执行dex:定义了多个dex文件

来自分类Dev

Android-无法执行dex:定义了多个dex文件

来自分类Dev

如何在Android Studio中解决“多个dex文件定义Lorg / junit / runner / Runner”

来自分类Dev

如何在Android Studio中解决“多个dex文件定义Lorg / junit / runner / Runner”

来自分类Dev

Android测试构建错误:多个dex文件定义了Landroid / support / test / BuildConfig

来自分类Dev

多个dex文件定义了Lcom / google / zxing / client / android / BeepManager错误

来自分类Dev

正在获取:最近移动的Android项目中出现“多个dex文件定义了Landroid [...]”错误

来自分类Dev

Android Studio中有多个build.gradle文件

来自分类Dev

错误:将字节码转换为 dex 时出错:原因:com.android.dex.DexException:多个 dex 文件定义了 Lcom/example/admin/myapplication/MainActivity;

来自分类Dev

Android Studio中的build.gradle文件错误

来自分类Dev

Android Studio Gradle错误(Android Studio 2.1)

来自分类Dev

Android Studio 2.0 Gradle错误

来自分类Dev

Android Studio Gradle错误-preDexDebug

来自分类Dev

Android Studio中的错误gradle

来自分类Dev

Android Studio Gradle下载错误

来自分类Dev

Android Studio Gradle同步错误

来自分类Dev

奇怪的Gradle错误Android Studio

来自分类Dev

Android Studio中gradle的错误

Related 相关文章

  1. 1

    Android Studio Gradle错误:定义了多个dex文件

  2. 2

    Android Gradle DexException:多个dex文件定义了Lorg / hamcrest / Description

  3. 3

    Android Studio多个dex文件定义了Lcom / abc / xyz / BuildConfig

  4. 4

    Android Studio多个dex文件定义了Lcom / abc / xyz / BuildConfig

  5. 5

    Android Studio中的依赖关系(来自Eclipse)多个Dex文件

  6. 6

    错误 com.android.dex.DexException:多个 dex 文件定义了 Lcom/google/android/libraries/places/internal/dh;

  7. 7

    Android - 如何修复错误:多个 dex 文件定义了 Lorg/eclipse/paho/android/service/MqttAndroidClient$MyServiceConnection;

  8. 8

    使用Gradle和Android Studio进行构建时,构建stORM会导致dex错误

  9. 9

    Android Studio Gradle错误

  10. 10

    Android Studio / Gradle错误

  11. 11

    Android Maven插件生成多个dex文件

  12. 12

    Android-无法执行dex:定义了多个dex文件

  13. 13

    Android-无法执行dex:定义了多个dex文件

  14. 14

    如何在Android Studio中解决“多个dex文件定义Lorg / junit / runner / Runner”

  15. 15

    如何在Android Studio中解决“多个dex文件定义Lorg / junit / runner / Runner”

  16. 16

    Android测试构建错误:多个dex文件定义了Landroid / support / test / BuildConfig

  17. 17

    多个dex文件定义了Lcom / google / zxing / client / android / BeepManager错误

  18. 18

    正在获取:最近移动的Android项目中出现“多个dex文件定义了Landroid [...]”错误

  19. 19

    Android Studio中有多个build.gradle文件

  20. 20

    错误:将字节码转换为 dex 时出错:原因:com.android.dex.DexException:多个 dex 文件定义了 Lcom/example/admin/myapplication/MainActivity;

  21. 21

    Android Studio中的build.gradle文件错误

  22. 22

    Android Studio Gradle错误(Android Studio 2.1)

  23. 23

    Android Studio 2.0 Gradle错误

  24. 24

    Android Studio Gradle错误-preDexDebug

  25. 25

    Android Studio中的错误gradle

  26. 26

    Android Studio Gradle下载错误

  27. 27

    Android Studio Gradle同步错误

  28. 28

    奇怪的Gradle错误Android Studio

  29. 29

    Android Studio中gradle的错误

热门标签

归档