为什么我的Android lib dir符号链接不正确?
我正在制作一个Android应用程序,其原生NDK代码将一些为什么我的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
.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放置在何处