我尝试使用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位库,反之亦然.