Android 默认Unity gradle中有多个Dex文件

Android 默认Unity gradle中有多个Dex文件,android,unity3d,gradle,Android,Unity3d,Gradle,在达到64k方法限制后,我尝试将Unity项目导出为gradle构建。在将其导入Android Studio后,我发现了错误 错误:库使用与此项目相同的包:com.myproject.name 找到这个后,我又加了一句 我的gradle项目。现在我可以在androidstudio中运行这个项目,但是正如在对这个问题的回答中所指出的,当我尝试构建一个APK时,我现在得到了以下错误 多个dex文件定义Lcom/myproject/myappname/BuildConfig 我的gradle文件如下

在达到64k方法限制后,我尝试将Unity项目导出为gradle构建。在将其导入Android Studio后,我发现了错误

错误:库使用与此项目相同的包:com.myproject.name

找到这个后,我又加了一句

我的gradle项目。现在我可以在androidstudio中运行这个项目,但是正如在对这个问题的回答中所指出的,当我尝试构建一个APK时,我现在得到了以下错误

多个dex文件定义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资源,我似乎可以构建项目,但当然我的应用程序运行不正常。为什么会出现此错误,以及如何解决此问题?

您的上一个项目unity android resources在AndroidManifest.xml中的packageName与gradle parameter applicationId中的基本应用程序相同。您可以编写任何其他packageName,例如com.example.myapplication.resources。

如何将其导入Android Studio?我使用的是Unity 5.5.0f3,Build System设置为Gradle new,并勾选了导出项目复选框。构建完成后,打开AndroidStudio 2.3.3,导入项目,然后选择构建而不是根文件夹,项目在其中。导入时,Android Studio抛出一个gradle版本错误,所以我将其更新为2.3.3.Ok。你不使用Gradle New导出怎么样。只需导出为ADT遗留。遵循步骤。它将向您展示如何做到这一点,然后将添加gradle。然后按照该步骤导入它。如果失败,则导出为内部默认值,然后按照I链接中的步骤进行操作。别忘了在Android Studio中会出现错误。步骤2A将修复该错误。尝试了一下,但在尝试合并我的清单时出现了一个相当严重的错误:错误:任务的执行失败:bLA:processDebugManifest'>清单合并失败:属性meta-dataandroid.support。VERSION@value[adttest:supportcompat2600alpha1:unspecified]AndroidManifest.xml:28:9-38中的value=26.0.0-alpha1也出现在[com.android.support:support-v4:25.3.1]AndroidManifest.xml:27:9-31 value=25.3.1中。建议:在AndroidManifest.xml:26:5-28:41处的元素中添加'tools:replace=android:value'以覆盖。还有一个相当长的导入摘要,概述了gradle项目中未包含的内容,其中包含来自我的插件的大量清单文件等。感谢您的回复。如果您使用Plugins>Android目录中的'res'文件夹,那么这个包是Unity创建的默认包,您需要它来添加应用程序名本地化。要解决这个问题,您似乎必须创建一个包含本地化名称的插件并导入它,如下所述:
// 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
        }
    }

}