Unity2019调用Android-aar的教程
一、Unity2019调用Android-aar要点之AndroidManifest
1.AndroidManifest注册aar包与Unity2019配置player设置(位于build\intermediates\aapt_friendly_merged_manifests\release\processReleaseManifest\aapt路径下)
2.Android版本支持设置
3.AndroidManifest中application设置
二、Unity2019调用Android-aar要点之IL2CPP与MONO
MONO作为比较稳定的旧式编译模式,适合android与unity的交互,考虑到了机性兼容问题。IL2CPP是面向未来的新型编译模式,具有对C/C++编译的高级支持,适合X64架构具有高性能编译系统的IOS设备。因此在不涉及架构要求的情况下,应当选择MONO模式以维系其兼容性;在对未来设备进行拓展时,应当选择IL2CPP提高效率
三、Unity2019调用Android-aar要点之aar包配置
1.经过多次尝试,classes.jar中的BuildConfig属于无用类,由Gradle工具自动生成。其存在会对dex二进制归档造成重名影响,应当删除
2.删除aar包libs中的classes.jar,避免后续与unity自己产生的classes.jar冲突
3.aar包中AndroidManifest的android:label或者与之相关的内容删除,避免与外部AndroidManifest冲突
4.当aar插件作为android后端时,删除一切有关资源的文件(比如style、theme等),最后只保留res下的values.xml只剩下命名设置
四、Unity2019调用Android-aar要点之mainTemplate.gradle配置
采用自定义gradle时应勾选PublishSetting中的custom选项,并将unity目录下的mainTemplate.gradle复制到Asset/Plugins/Android目录下,并开始编写。此方法可以解决aar导入额外资源问题,因为在默认情况下unity无法找到清单文件中描述的各种资源。在dependency处引入v4、v7依赖即可解决报错无法找到style、theme等资源引起的报错。但这并不是mainTemplate.gradle的最大意义,其用处还在于添加额外的依赖关系。比如导入了A.aar包,但是A.aar包依赖于某个库B.aar,我们知道在aar文件中是不会有依赖关系信息的。由于unity会将具有清单文件注册的mainactivity作为主活动启动,所以我们可以认为gradle中的application指的就是这个继承了unity活动的main活动,那么就只需要像一般的gradle项目一样向dependency添加aar依赖。
致敬Wizard踩坑团队
网友评论