Unity与Andriod交互错误合集

文章主要介绍了在Unity中调用安卓方法遇到的问题及解决方案,包括方法调用错误、过时API报错、AndroidStudio乱码问题以及Unity打包时关于R8的警告。解决方法涉及检查jar包位置、修正继承问题、调整Gradle配置以及处理编码设置。
摘要由CSDN通过智能技术生成

一、无法调用安卓中的方法no non-static method with name=‘’

报错如下,。在保证代码中的方法名没有问题,并且调用的方法名的返回值和传递的参数等都没有问题的情况下,
第一、查看在Unity项目中jar包存放的位置是否正确,需要放在Assets\Plugins\Android目录下
第二、查看在Android 中的方法类是否继承正确,如下二图中,是错误的。需要继承UnityPlayerActivity类,才能在Unity中调用

图二
(图2)

二、 报错为过时的API等错误,是在Android打jar时,将class的内容也打进包中。

所以出现了重复的类
报错详情如下:
在这里插入图片描述

在这里插入图片描述

具体原因:

在这里插入图片描述
解决方案:
1、如果只是BuildConfig.class文件内容重复,只需在Android工程中的build.gradle文件中加以下一段代码即可。
在这里插入图片描述
//不生成BuildConfig类

  libraryVariants.all {
        generateBuildConfigProvider?.get()?.enabled = false
    }

2、如果还报类似的错误,原因是将Unity的Class.jar包也打入进来了,还是当前文件中,在dependencies区块内
将lib中引用的class后的代码注释掉、且加compileOnly files(‘libs/classes.jar’)
// implementation files(‘libs\classes.jar’)

dependencies {
    compileOnly files('libs/classes.jar')  //只在编译有效,不打入包中
   // implementation files('libs\\classes.jar')
}

·
·

三、Android studio报错乱码解决方案

在android studio项目中依次点击Help --> Edit Custom VM Options
在配置文件中加入以下代码。

-Dconsole.encoding=UTF-8
-Dfile.encoding=UTF-8

然后重启IDE,操作:File --> Restart IDE。
操作完成后,重新build,引发报错,报错显示就会正常。

·
·

四、打包安卓APK 时报错:WARNING:enableR8

版本:Unity 2020.3.3f1c1

Configure project :launcher
WARNING: The option ‘android.enableR8’ is deprecated and should not be used anymore.
It will be removed in a future version of the Android Gradle plugin, and will no longer allow you to disable R8

解决方案:勾选custom base gradle template
在这里插入图片描述
在安卓文件目录下找到baseProjectTemplate.gradle这个文件
在这里插入图片描述
修改为3.4即可:在2020.3.7版本后会被修复
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gxy_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值