程序类型已经存在:com.google.android.gms.common.util.VisibleForTesting

时间:2018-07-21 06:30:20

标签: android android-gradle google-play-services

您好,我正在关注错误。我进行了很多搜索,但是没有一种解决方案适合我。

  

原因:com.android.builder.multidex.D8MainDexList $ MainDexListException:com.android.tools.r8.errors.CompilationError:程序类型已存在:com.google.android.gms.common.util.VisibleForTesting

我的摇篮

dependencies {
    implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true;
    }
    implementation 'com.android.support:multidex:1.0.3'
    implementation files('libs/AdiquityAndroidSDK.jar')
    implementation files('libs/gdx-backend-android.jar')
    implementation files('libs/libGoogleAnalyticsServices.jar')
    implementation files('src/main/jniLibs/gdx.jar')
//    implementation files('src/main/jniLibs/gdx-backend-android.jar')
    implementation 'com.google.android.gms:play-services-ads:15.0.1'
    implementation 'com.facebook.android:facebook-android-sdk:4.33.0'
}

我还使用了最新的gms插件。

classpath 'com.google.gms:google-services:4.0.1'

使用gradle-wrapper 4.4和构建gradle 3.1.3。

请帮助我如何解决此问题。

2 个答案:

答案 0 :(得分:3)

大量搜索后,找到解决方案。

解决implementation files('libs/libGoogleAnalyticsServices.jar')后,问题解决了。

问题在于,在两个不同的jar中存在具有相同程序包和文件名的文件,一个jar是旧的Google Analytics(分析)jar。

我们必须解决此冲突(由于不再需要我已删除了旧的jar),因此该项目才能构建。

答案 1 :(得分:1)

就我而言,将“播放服务”降级到版本12 后,问题已成功解决。

更改

          ull i; // unsigned long long int
          for (i = x - 1; i >= 0; i--)
               temp &= array2[array1[i] & 1];

implementation('com.google.android.gms:play-services-gcm:16.0.0') {
        exclude module: 'guava-jdk5'
    }
    implementation ('com.google.android.gms:play-services-maps:16.0.0'){
        exclude module: 'guava-jdk5'
    }