2012-06-14 99 views
0

我的Android應用程序崩潰,當我使用的Android NDK JNI調用LoadLibrary轟然

static { 
    system.LoadLibrary("MySharedLib"); 
} 

這是唯一明顯的錯誤消息,我得到:

無法寫入堆棧跟蹤到/ data/ANR /traces.txt(6767的5571):沒有這樣的文件或目錄

libMySharedLib.so是從ndk-build生成的。我正在使用powerVR SDK,因此我假設這個lib在內部事先被加載。

如果我將我的代碼分隔到不同的共享庫中,但能夠達到我需要的目的(所有數據,指針都存在於MySharedLib中,並且我想從Java調用C++函數) 。

+0

用zip文件工具打開apk並驗證.so是否存在。然後發佈失敗的logcat日誌 –

+0

如果你正在尋找建立一個單獨的lib.so文件,並在你的主lib.so中使用它,那麼這個答案可能有助於步驟。 http://stackoverflow.com/questions/10593987/android-ndk-linking/10615769#10615769 – codetiger

+0

我有一個類似的問題http://stackoverflow.com/questions/11003506/library-file-not-loading-in- 2-3-but-loading-in-4-0奇怪地嘗試以下操作讓我運行apk 1)從另一臺機器重新生成apk並在出現錯誤的設備上運行 –

回答

0

答案就像乾草堆裏的針。

請確保您已將所有java JNI_OnLoad和其他函數包裝在extern「C」中。 簡單。

+0

包括正確的文件對你。 – EJP