Android如何在64位设备上引用32位native library(.so库)

当你在Android上安装APK,系统将查找apk中lib目录下的本地库目录(armeabi,armeabi-V7A,arm64-V8A,X86,x86_64,mips64,mips)。查找该目录的顺序由系统的Build.SUPPORTED_ABIS决定。

如果你的应用程序碰巧有一个缺少对应库文件的arm64-v8a目录,缺少的库,将无法在安装时从另一个目录拷贝过来。这意味着你必须为每一个文件夹提供全套的库文件。

所以,要解决这个问题,我们可以从项目中删除64位库及相应文件夹,或者设置abiFilters来打包只有32位架构的apk:

 .... defaultConfig {
 ....    ndk { 
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips" 
         } 
     }
}```
然后在工程根目录下的```gradle.properties```文件中加入:
```android.useDeprecatedNdk=true```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容