如何在一个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().” 是啥意思,大家帮我看下
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我觉得他的意思是不用JNI,直接用
exec() / system()
执行so文件,也就没有JNI load lib时的问题。意思应该是使用命令行语句加载
有没有尝试通过
System.load()
函数自己指定加载哪个 so请问大神是否解决了这个问题?我现在也遇到了同样的问题,可以加个QQ或者微信聊下么?多谢多谢。。。