2013-06-19 146 views
1

我知道這個問題已經被問到,但我還沒有找到任何方式來找到解決我的問題,閱讀現有的代碼。我的一些應用程序的用戶對不同類型的UnsatifiedLinkError的經驗:UnsatisfiedLinkError噩夢

  1. 產生的原因:java.lang.UnsatisfiedLinkError中:無法加載MYLIB:findLibrary返回null
  2. 產生的原因:java.lang.UnsatisfiedLinkError中:庫MYLIB未找到
  3. 無法從加載程序加載mylib dalvik.system.PathClassLoader [dexPath =/system/framework/com.google.android.maps.jar: /system/app/it.mycompany.myapp.apk,library
  4. java.lang.UnsatisfiedLinkError:未找到本機方法:(存在函數並且已實現)

我使用下面的代碼加載我的lib:System.oadLibrary(「mylib」);

我從來沒有能夠重現任何他們。

請有你一些建議

+0

您在建築.apk文件之前放置'mylib.so'的位置? –

+0

您可以發佈完整的堆棧跟蹤嗎?那麼應該指出哪些方法沒有正確鏈接,或者任何本地調用崩潰? –

回答

2

請檢查,如果可以的話,下的Android版本的用戶得到這些錯誤。例如,您的「mylib」可能取決於某個系統庫,它可以在Android的新版本中找到,但不會在較舊的版本中找到。我有這個例如當我使我的本地庫依賴於AssetManager時 - 它在Android 2.2「Froyo」下不受支持。

如果你在你的JNI文件夾,其中你建立你的本地庫中添加一行像這樣Application.mk:

APP_PLATFORM:= Android的8

應該構建過程中拋出錯誤,如果你正在使用API​​級別8(Android 2.2)不支持的任何功能或類 - 或根據需要調整級別。

Greg