今天本地打包测试时,突然报错提示了这个问题,为什么说是突然呢,因为同样的代码在远程打包机上一切正常。
日常会遇到这样一类问题,特点是在网上查不到什么可行的解决方案,最终一番折腾下来,发现是因为一个极为低级的错误导致的,所以网上很难查到。
这次,我的第一反应便是如此,这一定是个很低级的错误导致的。但是谷歌上一查发现,有不少人遇到过同样的问题,有的说增加jvm最大内存限制解决了,有的说升级AGP版本解决了,有的说减少打包配置里noCompress文件数量解决了。
众说纷纭,但是一番折腾下来问题依然在。
转念一想,换个思路,对比一下打包机导出的项目和本地导出项目有没有什么差别。对比下来,发现原来是targetSdkVersion不同,导出时选择的是设备最高版本,打包机装的最新的SDK Platform版本是33,而我的本地已经装到了34,就这么一点细微差别,修改之后,顺利出包。
总结下来,还是个常谈的版本互相兼容问题,某些依赖库或是工具升级到某个版本后,配套的可能需要升级一连串的东西。
下面是我验证过可行的版本搭配:
- Unity Editor: 2020.3.41f1
- Android Gradle Plugin: 4.2.1
- Gradle: 6.7.1
- minSdkVersion: 21
- targetSdkVersion: 33
- buildToolsVersion: 30.0.1
- Ndk Version: r19(19.0.5232133)
- Java: OpenJDK 1.8.0_352