赞
踩
出现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文件夹”,所以就找不到高德地图的了。
深层原理参见链接 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文件)
最后clean一下项目,运行,成功~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。