Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.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
多种类型的;java.lang.UnsatifiedLinkError“;Android中的错误_Android_Android Ndk_Unsatisfiedlinkerror - Fatal编程技术网

多种类型的;java.lang.UnsatifiedLinkError“;Android中的错误

多种类型的;java.lang.UnsatifiedLinkError“;Android中的错误,android,android-ndk,unsatisfiedlinkerror,Android,Android Ndk,Unsatisfiedlinkerror,我使用android-ndk-r10e构建了so文件,并将so文件从服务器下载到/data/data/packagename.for.myapplication/myownso/armeabi-v7a/libtest.so 在加载库之前,我检查了文件的md5: checkSoFileMD5(); System.load("/data/data/packagename.for.myapplication/myownso/armeabi-v7a/libtest.so"); 它在大多数情况下工作正常

我使用android-ndk-r10e构建了so文件,并将so文件从服务器下载到/data/data/packagename.for.myapplication/myownso/armeabi-v7a/libtest.so

在加载库之前,我检查了文件的md5:

checkSoFileMD5();
System.load("/data/data/packagename.for.myapplication/myownso/armeabi-v7a/libtest.so");
它在大多数情况下工作正常但是,我从用户那里收到了一些关于“java.lang.unsatifiedlinkerror”的错误日志

其中包括:

1. java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1934]:   107 missing essential tables

2. java.lang.UnsatisfiedLinkError: Cannot load library: get_lib_extents[845]:   574 - /data/data/packagename.for.myapplication/myownso/armeabi-v7a/libtest.so is not a valid ELF object

3. java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/packagename.for.myapplication/myownso/armeabi-v7a/libtest.so" is too small to be an ELF executable

4. java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH in "libtest.so" (built with --hash-style=gnu?)

5. java.lang.UnsatisfiedLinkError: dlopen failed: invalid ELF file "/data/data/packagename.for.myapplication/myownso/armeabi-v7a/libtest.so" load segment[2]: p_offset (0x0) + p_filesz (0xd3ba58) ( = 0xd3ba58) past end of file (0x3a0000)
我可以确认碰撞设备CPU_ABI是armeabi-v7a


为什么会这样?为什么这些错误会发生在很少的设备上?

它无法加载库,因为.so不是有效的ELF文件。如果你的编译是正确的ABI,那么它就有问题。但是为什么只在少数设备上发生呢?我无法复制它。