在64位Android上使用32位jni库

在64位Android上使用32位jni库,第1张

概述我尝试使用Nexus 9上的本机库运行应用程序. 该应用程序退出并显示一条错误消息: java.lang.UnsatisfiedLinkError: dlopen failed: "lib_xyz.so" is 32-bit instead of 64-bit 是否有任何已知的解决方法为这个问题(除了当然,重新编译库,使apk更大) 找到一个解释:64位Android可以使用32位本地库作为后备, 我尝试使用Nexus 9上的本机库运行应用程序.

该应用程序退出并显示一条错误消息:

java.lang.UnsatisfIEdlinkError: dlopen Failed: "lib_xyz.so" is 32-bit instead of 64-bit

是否有任何已知的解决方法为这个问题(除了当然,重新编译库,使apk更大)

解决方法 找到一个解释:64位AndroID可以使用32位本地库作为后备,只有在System.loadllibrary()在默认搜索路径中找不到更好的东西.
如果强制系统使用完整的库路径使用System.load()加载32位库,则会收到一个UnsatisfIEdlinkError.
所以第一个解决方法是使用System.loadlibrary()而不是System.load().

必须考虑的另外一件事是,库不能混合:回退行为仅适用于您的应用程序加载的第一个库.如果第一个是64位,则不能由同一个应用程序加载32位库,反之亦然.

总结

以上是内存溢出为你收集整理的在64位Android上使用32位jni库全部内容,希望文章能够帮你解决在64位Android上使用32位jni库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1134188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存