0
我有一個工作項目,我使用JNI
來調用C
庫中的方法。無法將.so庫從工作項目集成到另一個
我的項目結構:
而且代碼加載庫:
static {
System.loadLibrary("RemoveBackground");
}
它的工作原理好。但直到我嘗試將此功能集成到其他項目中。我複製了jni
和libs
文件夾。還有全部three classes
沒有RemoveBackgroundActivity
(測試活動)。當我編譯這個項目,我有一個exeption:
1663-1663/com.example.Activities E/dalvikvm﹕ The lib may be ARM... trying to load it [/data/data/com.example.Activities/lib/libRemoveBackground.so] using houdini
1663-1663/com.example.Activities E/dalvikvm﹕ dvmHoudiniDlopen returns 0x9833cf40 with bool=1
你知道如何解決這個問題或其他方式來做到這一點?
1)我不確定IDEA,但在Eclipse中,您必須在項目中啓用本地開發。你不能只複製目錄。 2)我懷疑你需要libs目錄,除非你連接其他庫。我的一部分認爲它試圖加載在另一個項目中建立的庫。 3)Application.mk中有什麼?通常沒有必要。 4)除非你明確註冊本地方法,否則JNI調用可能需要更新,因爲包名稱(儘管這可能是未來的問題)。 – Dave