Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未满足的linkerror nativeLibraryDirectories=[/vendor/lib64,/system/lib64_Android_Shared Libraries_Loadlibrary - Fatal编程技术网

Android 未满足的linkerror nativeLibraryDirectories=[/vendor/lib64,/system/lib64

Android 未满足的linkerror nativeLibraryDirectories=[/vendor/lib64,/system/lib64,android,shared-libraries,loadlibrary,Android,Shared Libraries,Loadlibrary,情况如下: 我有一个64位apk,它应该是来自/system/lib的32位共享对象(.so文件)。但apk在运行时崩溃并报告: UnsatisfiedLinkError nativeLibraryDirectories=[/vendor/lib64, /system/lib64 我认为它试图从/system/lib64中搜索位于/system/lib中的.so文件,然后发生错误 我如何让它从/system/lib而不是/system/lib64进行搜索?如果您只有x86和armeabi-v7

情况如下:

我有一个64位apk,它应该是来自
/system/lib
的32位共享对象(.so文件)。但apk在运行时崩溃并报告:

UnsatisfiedLinkError nativeLibraryDirectories=[/vendor/lib64, /system/lib64
我认为它试图从/system/lib64中搜索位于
/system/lib
中的.so文件,然后发生错误


我如何让它从
/system/lib
而不是
/system/lib64
进行搜索?

如果您只有x86和armeabi-v7a库,您的应用程序应该自动以“32位模式”安装

尝试在gradle文件中使用此选项:

安卓{ .... 默认配置{ .... ndk{ abiFilters“armeabi-v7a”、“x86” } }
}

之所以会发生这种情况,是因为您正在绑定至少一个64位本机库。Android检测到这种情况,并决定在仅64位的位置查找其余的.so文件。它找不到这些文件,因为您仅为32位体系结构构建

要验证这是否是您的问题,请打开构建的apk并查看“lib”目录。其中的每个子目录都代表一个本机二进制体系结构。如果您没有构建该体系结构的所有本机.so文件,则该目录不应存在。找出原因并停止它

其中一个例子是Crashlytics,它可以悄悄地捆绑自己。导致的崩溃只出现在64位设备上,因为32位设备从不搜索64位体系结构目录


您必须从所有第三方中间件中删除不完全支持的体系结构。

32位。因此,即使您的apk可以找到正确的so文件,文件也不能用作64位。@Jiang YD。我在我的apk的Android.mk中使用LOCAL_MULTILIB:=32将apk构建为32位。但它不起作用。它仍然从/system/lib64进行搜索。log仍然说“/system/lib”在.so文件搜索路径中?你找到答案了吗?我面临同样的问题。