Android Studio运行项目时闪退(找不到so文件)

笔者在新电脑上运行之前做的项目时遇到了闪退问题。这个项目之前运行的一直很好,笔者找了很久才找到问题的原因。

笔者在新电脑上运行项目的时候,是运行在一个x86架构的模拟器上面的。笔者的项目中要生成一个so文件,而且笔者的项目中设置了so过滤,只留下了armeabi-v7a架构。然而Android Studio运行项目时只生成了x86架构的so文件,所以打包以后armeabi-v7a目录下就没有这个so文件。

解决方案也很简单,用Android Studio来Build一下APK就可以了,这样会生成所有支持的架构的so文件,然后再运行就不会报错了。

后记:后来经过反复测试发现Android Studio运行项目时只生成了x86架构的so文件的原因是Gradle版本太低。升级Gradle版本到5.4.1,Gradle插件版本到3.5.0就解决了这个问题。


查看CPU支持的ABIs优先级列表:

cat /system/build.prop | grep ro.product.cpu.abilist=

笔者的x86模拟器:

ro.product.cpu.abilist=x86,armeabi-v7a,armeabi

参考链接:

【android】Android系统判断CPU架构信息以及是32位还是64位

《Android Studio运行项目时闪退(找不到so文件)》上有1条评论

发表评论