为什么我的Android lib dir符号链接不正确?

为什么我的Android lib dir符号链接不正确?,android,android-ndk,Android,Android Ndk,我正在制作一个Android应用程序,其原生NDK代码将一些.so共享库文件与dlopen()动态链接(如果您感兴趣,是OpenNI2相机库首先检测连接的相机型号,然后加载该型号的.so文件) 我已将这些库放置在我的app/src/main/jniLibs/armeabi-v7a/目录(适用于在ARM上运行API版本19的手机)和app/src/main/jniLibs/x86_64/目录(适用于在英特尔x86_64上运行API版本23的平板电脑) 在ARM上,一切正常,符号链接到包含我的的li

我正在制作一个Android应用程序,其原生NDK代码将一些
.so
共享库文件与
dlopen()
动态链接(如果您感兴趣,是OpenNI2相机库首先检测连接的相机型号,然后加载该型号的
.so
文件)

我已将这些库放置在我的
app/src/main/jniLibs/armeabi-v7a/
目录(适用于在ARM上运行API版本19的手机)和
app/src/main/jniLibs/x86_64/
目录(适用于在英特尔x86_64上运行API版本23的平板电脑)

在ARM上,一切正常,符号链接到包含我的
lib
目录。因此
文件是正确的:

# ls -l /data/data/com.example/
drwxrwx--x u0_a175  u0_a175           2015-09-02 00:10 app_execdir
drwxrwx--x u0_a175  u0_a175           2015-09-19 22:39 cache
lrwxrwxrwx install  install           2015-09-20 02:30 lib -> /data/app-lib/com.example-1

# ls -l /data/app-lib/com.example-1
-rwxr-xr-x system   system     409940 2015-10-20 02:30 gdbserver
-rwxr-xr-x system   system     308532 2015-10-18 01:06 libOpenNI2.so
但是,在Intel上,我看到:

# ls -l /data/data/com.example/                                 
drwxrwx--x u0_a65   u0_a65            2015-09-20 00:41 app_execdir
drwxrwx--x u0_a65   u0_a65            2015-09-20 00:41 cache
lrwxrwxrwx install  install           2015-09-20 00:41 lib -> /data/app-lib/com.example

# ls -l /data/app-lib/com.example
/data/app-lib/com.example: No such file or directory
这是怎么回事?为什么
lib
symlink指向一个不存在的目录


如何修复它?

这对符号链接没有意义

但是.所以文件不应该在Android 21+的/data/app lib/中。 你能在/data/app/com.example-1/lib/x86_64中找到你的lib吗

您可以从
dumpsys packages
中读取legacyNativeLibraryDir,以了解应该将LIB放置在何处