一、无法调用安卓中的方法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版本后会被修复