unity3d - Unity导出中Android支持编译的Gradle问题

标签 unity3d gradle android-gradle-plugin

在Unity中编译项目时遇到了multidex问题,因此我导出了项目并将其导入gradle。我已经修复了大多数依赖项,但无法摆脱以下问题:

FAILURE: Build failed with an exception.
12:05:17.012 [ERROR] [org.gradle.BuildExceptionReporter] 
12:05:17.012 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
12:05:17.012 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':mainProj:transformClassesWithJarMergingForRelease'.
12:05:17.012 [ERROR] [org.gradle.BuildExceptionReporter] > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/compat/BuildConfig.class
12:05:17.012 [ERROR] [org.gradle.BuildExceptionReporter] 

这适用于所有support *项目。我在其他SDK上也遇到了类似的问题,但是我通过从其classes.jar文件中删除BuildConfig.class来修复了它们。出于某种原因,当我为supportcompat2500项目删除此类(在此特定示例中)时,它一直在返回-我不知道从何而来。

我的settings.gradle是:
include ':amazonAppStore'
include ':appLovin'
include ':chartboost'
include ':googleAIDL'
include ':googlePlay'
include ':heyzap'
include ':oneSignalConfig'
include ':samsungApps'
include ':shortcutBadger115'
include ':unityAds'
include ':vungle'
include ':animatedvectordrawable2500'
include ':cardviewv72340'
include ':common'
include ':customtabs2340'
include ':facebookandroidsdk4170'
include ':facebookandroidwrapper790'
include ':onesignalunity'
include ':playservicesads980'
include ':playservicesadslite980'
include ':playservicesbase980'
include ':playservicesclearcut980'
include ':playservicesgass980'
include ':playservicesgcm980'
include ':playservicesiid980'
include ':playserviceslocation980'
include ':playservicestasks980'
include ':supportcompat2500'
include ':supportcoreui2500'
include ':supportcoreutils2500'
include ':supportfragment2500'
include ':supportmediacompat2500'
include ':supportv42500'
include ':supportvectordrawable2500'
include ':mainProj'

mainProj.gradle:
apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"

    defaultConfig {
        applicationId "com.mainProj.mainProj"
        minSdkVersion 15
        targetSdkVersion 24

        // Enabling multidex support.
        multiDexEnabled true
    }

    lintOptions {
        quiet true
        abortOnError false
        ignoreWarnings true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDirs = ['src/main/java.com.mainProj.mainProj']
            resources.srcDirs = ['src/main/res']

            renderscript.srcDirs = ['src']
            res.srcDirs = ['src/main/res']
            assets.srcDirs = ['src/main/assets.bin.Data']
            jniLibs.srcDirs = ['src/main/jniLibs']
        }

        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

dependencies {
    compile 'com.android.support:multidex:1+'
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':amazonAppStore')
    compile project(':appLovin')
    compile project(':chartboost')
    compile project(':googleAIDL')
    compile project(':googlePlay')
    compile project(':cardviewv72340')
    compile project(':customtabs2340')
    compile project(':heyzap')
    compile project(':oneSignalConfig')
    compile project(':samsungApps')
    compile project(':shortcutBadger115')
    compile project(':unityAds')
    compile project(':vungle')
    compile project(':common')
    compile project(':facebookandroidsdk4170')
    compile project(':facebookandroidwrapper790')
    compile project(':onesignalunity')
    compile project(':playservicesads980')
    compile project(':playservicesadslite980')
    compile project(':playservicesbase980')
    compile project(':playservicesclearcut980')
    compile project(':playservicesgass980')
    compile project(':playservicesgcm980')
    compile project(':playservicesiid980')
    compile project(':playserviceslocation980')
    compile project(':playservicestasks980')
    compile project(':supportcompat2500')
    compile project(':supportcoreui2500')
    compile project(':supportcoreutils2500')
    compile project(':supportfragment2500')
    compile project(':supportmediacompat2500')
    compile project(':supportv42500')
    compile project(':supportvectordrawable2500')
}

项目gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

将不胜感激任何建议/推荐。谢谢。

最佳答案

问题是

facebookandroidwrapper790

已经包含com.android.support及其所有子项目。
我已经删除了所有
compile project(':support*')

关于unity3d - Unity导出中Android支持编译的Gradle问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41588019/

相关文章:

android - 无法更新 multidex 行为

android-studio - Android Studio无法使用Kotlin DSL打开Android项目

android - 无法从存储中读取 key 。无法恢复 key

c# - 运行时 Unity3D C# 方向改变不起作用

ios - xCode - Google Cardboard 构建失败

android - Gradle:多重依赖需要 slf4j

gradle - 如何在build.gradle中声明gradle版本5.0?

c# - 在球体中设置玩家的边界

unity3d - UnusedBytecodeStripper2.exe 未正常运行

Android Studio 错误 "Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8"