如何在一个app中混合使用32和64位的.so库

需求:我的app有两个功能需要用so库:录音和编辑pdf,当app运行在32位设备上时只能都用32位so,运行在64位设备时,我希望录音继续用32位so,编辑pdf用64位so。原因在此不解释了

实际结果:我尝试先把32位so放到jnilib,把64位so放到assets,然后开新进程 system.load动态拷贝加载64位so,报错!android不支持在一个app混合使用so,要么全部只用32位,要么只用64位so。因为在安装这个app的时候就已经确定,这个app是运行在32 or 64位的虚拟机。

我在stackoverflow提了一个问题,有个外国大牛回答了此问题,但是我不太明白他说的:“ and run a arm64-v8a executable from Java with Runtime.exec() or from C with system().” 是啥意思,大家帮我看下

https://stackoverflow.com/que...

阅读 9.4k
4 个回答

我觉得他的意思是不用JNI,直接用exec() / system()执行so文件,也就没有JNI load lib时的问题。

意思应该是使用命令行语句加载

有没有尝试通过System.load()函数自己指定加载哪个 so

新手上路,请多包涵

请问大神是否解决了这个问题?我现在也遇到了同样的问题,可以加个QQ或者微信聊下么?多谢多谢。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题