我正在制作Android应用程序,其原生NDK代码动态链接一些.so
共享库文件与dlopen()
(如果您有兴趣,它是OpenNI2相机库,它首先检测附加的相机型号,然后为此加载.so
文件模型)。为什么我的Android lib目录符号链接不正确?
我已经将这些库放在我的app/src/main/jniLibs/armeabi-v7a/
目录(用于在ARM上运行API版本19的手机)和app/src/main/jniLibs/x86_64/
目录(用于在Intel x86_64上运行API版本23的平板电脑)。
的手臂,一切工作正常,并且符号链接到包含我的.so
文件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
然而,英特尔我看到:
# 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
符号链接指向一个不存在的目录?
我该如何解决?