2017-06-05 28 views
0

我目前收到以下錯誤:如何將本機庫(.so)添加到android studio?

java.lang.UnsatisfiedLinkError: nativeLibraryDirectories=[/data/app/com.example.ryane.jzy-1/lib/arm, /vendor/lib, /system/lib] couldn't find "libgluegen-rt.so" 

在執行下面的代碼行

System.loadLibrary("gluegen-rt"); 

我已經列入我的build.gradle以下

sourceSets { 
    main { 
     jniLibs.srcDirs = ["src/main/jniLibs", "$buildDir/native-libs"] 
    } 
} 

而且已將我的libgluegen.so放在src/main/jniLibs中。根據這個錯誤,好像它不在我指定的目錄中。有沒有我失蹤的步驟?

+0

嘗試添加'jni.srcDirs = []''到'build.gradle' sourceSets.main' –

+0

不幸的是,我仍然有同樣的錯誤。我一直在閱讀,並注意到很多人在使用本地庫時提及.mk文件。這些是必需的嗎? @RustFisher –

+0

'.mk'文件意味着你自己編譯'.so'。那麼你的項目中是否有一個本地lib(如C/C++文件)或只是'.so'文件?您需要使用NDK工具編譯C/C++源文件。 –

回答

1

嗯......其實我想看看你的.so路徑...
再舉例來說,在我的build.gradle jniLibs.srcDirs = ['src/main/libs']

.so的路徑是MyProj\app\src\main\libs\armeabi-v7a\libSmartAlgorithm.so

庫/ TARGET_ARCH_ABI

arm64-v8a 
armeabi 
armeabi-v7a 
mips 
mips64 
x86 
x86_64 
+0

我的錯誤是我直接在主\ libs內存儲我的文件,而不是他們各自的架構目錄!非常感謝! –

相關問題