在使用Unity构建时,我收到错误:
trouble writing output: Too many method references: 78849; max is 65536.
You may try using --multi-dex option.
但是我无法弄清楚如何明确地告诉Unity使用multi dex。
答案 0 :(得分:7)
我建议查看有关此问题的官方Unity3D论坛:
来自那里的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个简单步骤:
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)
我建议您浏览此链接,这将有助于您直接通过统一创建支持多索引的游戏。
注意:这只会在单位中启用multidex(并且应该修复multidex问题)。它不会解决与gradle相关的问题。