Unity中调用.aar并打包安卓问题记录

序言

最近项目中需要导入一些安卓底层代码,遇到一些问题,记录一下。Unity版本2020.3.48f1

导入设置

.aar文件是同事直接发给我的。

  1. 将aar文件放入Unity下Assets/Plugins/Android 文件夹下,没有的自行创建。

  2. 导入后点击aar文件,将Android勾上(一般默认勾选)勾选安卓

  3. 用压缩软件打开.aar文件里看一下,重点看AndroidManifest.xml 文件,不知道是同事导出有问题还是有时候就会存在问题,这里面可能会出现重复的情况。具体报错会在后面详细说。

  4. 其实这样就已经完成了,可以写代码调java代码了。

C#调用Java代码

具体调用,这篇文章已经写得很详细了。链接: Unity调用Java

遇见的问题

不知道是不是我这个版本的问题,反正遇到了很多问题,一一记录一下解决方法。

出现 The option setting ‘android.enableR8=false’ is deprecated 报错

报错1
解决方案:在PlayerSetting中打开这个开关
解决1
他会在Assets/Plugins/Android文件夹下生成一个.gradle文件,双击打开该文件。
gradle文件
当前gradle版本是4.0.1,可能是这个版本有问题,将版本改成3.4.0
修改版本
然后重新打包,这个报错就被解决了。
参考链接: 解决android.enableR8=false

出现 Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. 报错

好像是使用了弃用的Gradle特性报错。

找到PlayerSetting里这个选项:
解决2
在相应的地方打开mainTemplate.gradle
增加
在这里增加一行:implementation ‘com.android.support:appcompat-v7:28.0.0’ 注意:这里的是英文的引号!!!

重新打包就可以。

出现 XXX at AndroidManifest.xml requires a placeholder substitution but no value for is provided. 报错

报错3
这是因为的.aar里的AndroidManifest.xml文件里有这么一行
问题

你需要给XXX一个默认值。

还是打开mainTemplate.gradle文件。
解决3
在这个地方添加一条 manifestPlaceholders.put(“screenOrientation”,“unspecified”) put里填写key和value就可以了。

AndroidManifest.xml问题

现在好像一般不用另外写ndroidManifest.xml了,Unity会自动将默认的AndroidManifest.xml和你所有的aar中的AndroidManifest.xml文件合并。但是合并的时候有可能会出问题,他会报合并错误,按照他报错的内容修改就好了,一般可能是什么权限合并重复等等。你如果想自己写AndroidManifest.xml的话,你可以打开这个开关:
开关
AndroidManifest.xml文件就自动出现了。你需要改的也就是吧.aar中这种标签全都复制到相应的地方就行了。
1
2

总结

导入aar文件后打包可能会出现很多问题,根据报错一一解决就好了,反正上面的报错我都一个一个出现了。很烦。有不会的问ChatGPT,贼好使!!完全能告诉你为什么会出错,该怎么做。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值