android - 默认Unity gradle中的多个Dex文件

标签 android unity-game-engine gradle

达到 64k 方法限制后,我尝试将我的 Unity 项目导出为 gradle 构建。导入Android Studio后报错

Error: A library uses the same package as this project: com.myproject.name

找到这个之后question我加了

enforceUniquePackageName = false

我的 gradle 项目。现在我可以在 Android Studio 中运行该项目,但正如该问题的答案中所述,当我尝试构建 APK 时出现以下错误

Multiple dex files define Lcom/myproject/myappname/BuildConfig;

我的gradle文件如下

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
    }
}

allprojects {
   repositories {
      flatDir {
        dirs 'libs'
      }
   }
}

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile(name: 'ShortcutBadger-1.1.5', ext:'aar')
    compile(name: 'animated-vector-drawable-23.4.0', ext:'aar')
    compile(name: 'appcompat-v7-23.4.0', ext:'aar')
    compile(name: 'cardview-v7-23.4.0', ext:'aar')
    compile(name: 'customtabs-23.4.0', ext:'aar')
    compile(name: 'facebook-android-sdk-4.17.0', ext:'aar')
    compile(name: 'facebook-android-wrapper-7.9.4', ext:'aar')
    compile(name: 'firebase-analytics-11.0.2', ext:'aar')
    compile(name: 'firebase-analytics-impl-11.0.2', ext:'aar')
    compile(name: 'firebase-app-unity-4.0.2', ext:'aar')
    compile(name: 'firebase-common-11.0.2', ext:'aar')
    compile(name: 'firebase-core-11.0.2', ext:'aar')
    compile(name: 'firebase-iid-11.0.2', ext:'aar')
    compile(name: 'firebase-messaging-11.0.2', ext:'aar')
    compile(name: 'firebase-messaging-unity-4.0.2', ext:'aar')
    compile(name: 'play-services-base-11.0.2', ext:'aar')
    compile(name: 'play-services-basement-11.0.2', ext:'aar')
    compile(name: 'play-services-gcm-11.0.2', ext:'aar')
    compile(name: 'play-services-iid-11.0.2', ext:'aar')
    compile(name: 'play-services-tasks-11.0.2', ext:'aar')
    compile(name: 'support-compat-26.0.0-alpha1', ext:'aar')
    compile(name: 'support-core-ui-26.0.0-alpha1', ext:'aar')
    compile(name: 'support-core-utils-26.0.0-alpha1', ext:'aar')
    compile(name: 'support-fragment-26.0.0-alpha1', ext:'aar')
    compile(name: 'support-media-compat-26.0.0-alpha1', ext:'aar')
    compile(name: 'support-v4-26.0.0-alpha1', ext:'aar')
    compile(name: 'support-vector-drawable-23.4.0', ext:'aar')
    compile(name: 'utnotifications', ext:'aar')
    compile project(':Firebase')
    compile project(':UTNotificationsRes')
    compile fileTree(dir: 'fabric-init/libs', include: ['*.jar'])
    compile fileTree(dir: 'crashlytics-wrapper/libs', include: ['*.jar'])
    compile fileTree(dir: 'crashlytics/libs', include: ['*.jar'])
    compile fileTree(dir: 'beta/libs', include: ['*.jar'])
    compile fileTree(dir: 'answers/libs', include: ['*.jar'])
    compile project(':fabric')
    compile (project(':unity-android-resources'))
}

android {
    compileSdkVersion 25
    buildToolsVersion '26.0.0'
    enforceUniquePackageName = false

    defaultConfig {
        targetSdkVersion 25
    }

    lintOptions {
        abortOnError false
        disable 'MissingTranslation'
    }
    signingConfigs { 
      //omitted!
    }

    buildTypes {
        debug {
            jniDebuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
            signingConfig signingConfigs.release
        }
    }

}

删除不同的插件并尝试构建后,如果我注释掉最后一个插件unity-android-resources,似乎我可以构建项目,但当然我的应用程序无法正常运行。为什么会出现这个错误,我该如何解决这个问题?

最佳答案

您的最后一个项目 unity-android-resources 在 AndroidManifest.xml 中与基础应用程序具有相同的 packageName(在 gradle 参数 applicationId 中)。您可以编写任何其他 packageName,例如 com.example.myapplication.resources

关于android - 默认Unity gradle中的多个Dex文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45025831/

相关文章:

unity-game-engine - Unity 游戏中缺少 dSym

java - Unity - AndroidJavaObject.来自另一个线程的调用

java - 如何让 Dagger 2 与 Android Studio Java 库项目一起工作

缺少 Android Studio 2.3.1 组件树和调色板

Android以编程方式设置自定义 View 的高度和宽度

android - 如何使我的应用程序全屏显示?

android - Notification in android 添加两个通知

unity-game-engine - Unity WebGL Google Analytics 失败点击

android - 在 Gradle 中跨模块/子项目使用 AIDL 接口(interface)

java - Gradle 能否以任何方式帮助解决 jar hell?