Unity打包APK缺少Support-V4 库 java.lang.NoClassDefFoundError: Failed resolution of: Landriod/support/v4/

Unity打包APK缺少Support-V4 库 java.lang.NoClassDefFoundError: Failed resolution of: Landriod/support/v4/content/ContextCompat

问题
这两天第一次接安卓SDK的东西,好不容易打包成aar丢到Plugin/Android里面,结果一到模拟器运行就报java.lang.NoClassDefFoundError: Failed resolution of: Landriod/support/v4/content/ContextCompat。

在这里插入图片描述

 

这个报错看起来感觉像是没有Support-V4库上的东西,估计SDK那边有用到,但是我打包的时候明明有在gradle中加入implementation ‘com.android.support:support-v4:26.1.0’,打出的包还是会报这个错。初步猜测是在unity打包的时候没有将这个包加入。

解决方式
最后一番折腾,找到官方文档的说明,需要将在plugin/Android中加入对应的gradle文件。这个文件需要从Unity的安装目录中E:\WorkSofe\unity2018\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates\mainTemplate.gradle复制出来

在这里插入图片描述

在这里插入图片描述

 


丢到plugins/Android文件夹中,这样在unity导出时会先使用这个文件中的配置进行配置。

在这里插入图片描述 

 

然后用AS或其他软件打开这个mainTemplate文件,在里面加入

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:support-v4:26.1.0'	// 加入这句,对应版本换成对应版本号
**DEPS**}



在Unity导出不要选择Internal,要用Gradle导出,需要打成apk就不要勾选Export porject。

在这里插入图片描述
这样,打出的Apk包里面就包含了support-v4的依赖了

 

Gradle打包遇到的其他问题
打包编译错误Manifest中说哪里哪里出现重复的字段,将aar包中重复的AndroidMainfest删掉即可
Program type already present: com.xx.BuildConfig,BuildConfig已经存在。解决方式:在aar打包工程的gradle中加入Program type already present: com.xx.BuildConfig。参考链接:https://blog.csdn.net/xiongya8888/article/details/103769965

在这里插入图片描述

 

这样讲就不会在aar中生成BuildConfig文件了
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值