Unity原生开发:Unity编译Android超过65536的解决方法
Unity原生开发:Unity编译Android超过65536的解决方法
Android开发中有对APK的方法数量做限制,不能超过65536.如果超过了该数目,会遇到如下异常:Conversion to Dalvikformat failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536
,而网上能查到的解决方法都是针对Android的,经过各种资料结合终于把问题解决了。
解决方案如下:
1、在Android工程的build.gradle中启用MultiDex并包含MultiDex支持
1 | defaultConfig |
然后执行一下 Sync Now,目的是让配置生效 。
2、在Android工程的application中重写一下attachBaseContext
1 | @Overrideprotected |
3、在Unity的Android打包设置(File->Build Settings->Player Settings)中勾选Custom Gradle Template
这时候会在Plugins/Android文件夹下出现mainTemplate.gradle在下面这些地方添加代码
1 | defaultConfig |
在构建流程中出现这种问题,根据提示我们大概明白这是方法数过大导致的,而这些方法是存在于编译后的.class文件中的,而.class最后要存在于dex文件中,单个dex的方法或者字段数量不能超过65536所以会报错。完成以上配置重新打包生成的jar包就不会放在一个.class文件里面了,而是分成很多个.class文件根据生成的清单进行引用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mr.Chao!
评论
TwikooLivere