Android 5.0棒棒糖上的不满意链接错误

Android 5.0棒棒糖上的不满意链接错误,android,android-ndk,android-5.0-lollipop,Android,Android Ndk,Android 5.0 Lollipop,我正在通过以下方式加载我的本机库: try { System.loadLibrary("myNative"); } catch (UnsatisfiedLinkError e) { //java.lang.UnsatisfiedLinkError here System.load("/data/data/com.my.app/my_native/libmyNative.so"); } 除了Android 5.0棒棒糖,上述代码在其他设备上也可以正常工作

我正在通过以下方式加载我的本机库:

try {
       System.loadLibrary("myNative");
} catch (UnsatisfiedLinkError e) {
       //java.lang.UnsatisfiedLinkError here
       System.load("/data/data/com.my.app/my_native/libmyNative.so");
}
除了Android 5.0棒棒糖,上述代码在其他设备上也可以正常工作。在安卓5.0棒棒糖设备上运行时,我经常会遇到以下错误:

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.my.app/my_native/libmyNative.so" is 32-bit instead of 64-bit
at java.lang.Runtime.load(Runtime.java:331)
at java.lang.System.load(System.java:982)
如何解决这个问题

==更新====


我将本机库从
lib//libmyNative.so
复制到
/data/com.my.app/my_native/libmyNative.so
,然后使用上面的代码加载库。

似乎是打包libs的某种方式(将它们从
lib//libmyNative.so
复制到
/data/data/com.my.app/my_native/libmyNative.so
)混淆了安装程序。安装APK时,它应该已经自动提取正确拱形类型的库,并将它们提供给
系统。loadLibrary
-您不需要手动将任何内容复制到自定义目录中,如
my_native


在这种情况下,
是现有的(
armeabi
armeabi-v7a
等)还是您自己的?如果不是标准的,安装程序将不知道您的应用程序包含32位本机代码,因此将以首选模式(64位)启动您的应用程序进程.

Nexus 9?你在使用什么设备?你的错误在这里:
是32位而不是64位
。根据64位libs编译。是的,Nexus 9。我知道错误在哪里。但我正在寻找一种方法使其与32位本机库一起工作。这是通过APK安装的普通第三方应用程序,还是预装在ROM中?在以前的ca中se,进程应该在正确的模式(32/64位)下启动,具体取决于包中包含的本机库的风格。在后一种情况下,请看一看。@mstorsjo,两者都不是。这是我自己的本机代码,ndk builded&used(load)在我自己的应用程序中。然后应用程序进程应该在32位模式下启动——使用旧NDK版本构建的应用程序应该仍然可以正常工作。你能添加一个列表,例如“unzip-l yourapp.apk”显示的内容吗?