Android调试笔记——引用unity的库后,高德地图变成白屏。

出现bug:引用unity的库后,本可以显示的高德地图变成白屏。
即高德地图FAQ中的Android 工程/APK找不到 so 文件

通过解压APK查看表象
除了通过日志,提供一个简单粗暴的方式查看,是不是有这个问题
1)找到出问题的APK,如demo.apk
2)修改后缀为demo.zip
3)解压zip
4)查看libs目录
如果里面有处理armeabi以外的文件夹,可能就是有这个问题了。

原因:unity导出库时的“Player Settings”中“Device Filter”设置了生成“armeabi-v7a文件夹”,而我所用的高德地图的版本只提供了“armeabi文件夹”和“arm64-v8a文件夹”,而程序以文件夹为单位搜索可用的armeabi文件,所以一旦找到,就不会搜其他的armeabi文件夹了,因为优先找到了unity所用的“armeabi-v7a文件夹”,所以就找不到高德地图的了。
Device Filter
这里写图片描述

深层原理参见链接 Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86
引用原作者总结:

如果项目只包含了 armeabi,那么在所有Android设备都可以运行;
如果项目只包含了 armeabi-v7a,除armeabi架构的设备外都可以运行;
如果项目只包含了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的; 如果同时包含了 armeabi,
armeabi-v7a和x86,
所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。

解决方案:我在引用unity的android项目(不是作为库从unity导出的文件)的libs文件夹下新建了“armeabi-v7a文件夹”,并把原“armeabi文件夹内的.so文件复制了到了这里面(注意:不需要再复制unity导出作库文件中的.so文件)
新建了“armeabi-v7a文件夹”

最后clean一下项目,运行,成功~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值