如何在Unity3D中为Android启用multi-dex选项?

时间:2015-06-30 14:34:22

标签: android unity3d

在使用Unity构建时,我收到错误:

trouble writing output: Too many method references: 78849; max is 65536.
You may try using --multi-dex option.

但是我无法弄清楚如何明确地告诉Unity使用multi dex。

3 个答案:

答案 0 :(得分:7)

我建议查看有关此问题的官方Unity3D论坛:

Multidex Support on Android

来自那里的Q / A:Too many method references when I export android build

以下是Unity官员的回复:

  

因此,我们在Unity中未添加对此的支持的最大原因是因为它不起作用。或者更确切地说,它通常会产生比解决更多的问题。除非你只针对Android的现代版本,否则我建议你尽一切力量,包括在采用多索引之前剥离和编写代码。

     

如果你不相信我,只需在Googles开发者页面查看多个dex库的已知限制:   https://developer.android.com/tools/building/multidex.html#limitations

所以结论是尽力缩小方法数量以保持在65K以内。例如,如果您使用google-play-services.jar,则只能将其替换为所需的子模块。

还有关于导出到Android Studio并在那里构建项目的讨论,但显然,由于dex问题,它没有成功。

另外,我主张阅读有关DEX问题的this文章。

我希望,这有帮助。祝你好运!

答案 1 :(得分:1)

要在Unity上激活multidex,请遵循3个简单步骤:

enter image description here

1)使用Gradle构建系统:

Unity -> File -> Build Settings -> Build System -> Gradle.

2)签入“СustomGradle模板”:

Player Setting... -> Publish Settings -> Check in "Сustom Gradle Template"

3)更改mainTemplate.gradle文件:

从以下路径打开文件: Assets \ Plugins \ Android \ mainTemplate.gradle

添加以下代码:

android 
{
   ...
   defaultConfig
   {
       multiDexEnabled true
       ...
    }
}

其他信息: https://docs.unity3d.com/Manual/android-gradle-overview.html

答案 2 :(得分:0)

我建议您浏览此链接,这将有助于您直接通过统一创建支持多索引的游戏。

another article

注意:这只会在单位中启用multidex(并且应该修复multidex问题)。它不会解决与gradle相关的问题。