我正在製作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
符號鏈接指向一個不存在的目錄?
我該如何解決?