代码之家  ›  专栏  ›  技术社区  ›  Paritosh Chaudhary

多个索引文件定义Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;

  •  3
  • Paritosh Chaudhary  · 技术社区  · 10 年前

    我在android studio上编译我的项目时遇到了这个错误

    app:transformClassesWithDexForDebug FAILED
    Error:Error converting bytecode to dex:
    Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;
    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    
        `com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-openjdk-i386/bin/java'' finished with non-zero exit value 2`
    

    下面是我的版本。渐变文件:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"
        useLibrary 'org.apache.http.legacy'
    
        defaultConfig {
            applicationId "paritosh.d9.groceries"
            minSdkVersion 17
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.4.0'
        compile 'com.mcxiaoke.volley:library-aar:1.0.0'
        compile 'com.android.support:design:23.1.1'
        compile 'com.facebook.android:facebook-android-sdk:4.11.0'
        compile 'com.facebook.android:audience-network-sdk:4.7.0'
        compile 'com.google.android.gms:play-services-location:8.4.0'
        compile 'com.google.android.gms:play-services-auth:8.4.0'
    }
    

    我一直在努力解决这个问题。我已经试过了 删除我的play服务依赖项,但这并没有解决问题。

    1 回复  |  直到 10 年前
        1
  •  3
  •   Val    10 年前

    依赖项中有重复项,两个类是相同的。您应该了解哪个库包含您应该排除的那个库。为了做到这一点,你需要 在控制台中运行下一行:

    ./gradlew app:androidDependencies
    

    Android Studio中的Gradle插件:

    enter image description here

    输出如下:

    +--- com.android.support:multidex:1.0.1
    +--- io.realm:realm-android-library:1.0.0
    |    \--- com.getkeepsafe.relinker:relinker:1.2.1
    +--- com.android.support:appcompat-v7:23.3.0
    |    +--- com.android.support:animated-vector-drawable:23.3.0
    |    |    \--- com.android.support:support-vector-drawable:23.3.0
    |    \--- com.android.support:support-vector-drawable:23.3.0
    +--- com.android.support:design:23.3.0
    |    +--- com.android.support:appcompat-v7:23.3.0
    |    |    +--- com.android.support:animated-vector-drawable:23.3.0
    |    |    |    \--- com.android.support:support-vector-drawable:23.3.0
    |    |    \--- com.android.support:support-vector-drawable:23.3.0
    |    \--- com.android.support:recyclerview-v7:23.3.0
    

    寻找重复的 gms

     compile(group: 'com.google.android.gms', name: 'play-services-gcm', version: "8.4.0") {
            exclude(group: 'com.google.android.gms', module: 'play-services-base')
            exclude(group: 'com.google.android.gms', module: 'play-services-basement')
        }
    

    如果你仍然不能解决这个问题,请给我看看

    ./gradlew应用程序:androidDependencies