1

我知道这个问题已经被问到了,但是我没有找到任何方法来解决阅读现有代码的问题。我的一些应用程序用户对不同类型的 UnsatifiedLinkError 有过体验:

  1. 引起:java.lang.UnsatisfiedLinkError:无法加载mylib:findLibrary返回null
  2. 引起:java.lang.UnsatisfiedLinkError: Library mylib not found
  3. 无法从加载程序 dalvik.system.PathClassLoader[dexPath=/system/framework/com.google.android.maps.jar: /system/app/it.mycompany.myapp.apk,library 加载 mylib
  4. java.lang.UnsatisfiedLinkError:未找到本机方法:(该函数存在并已实现)

我使用以下代码将我的库加载到代码中: System.oadLibrary("mylib");

我永远无法复制它们中的任何一个。

请给你一些建议

4

1 回答 1

2

如果可以,请检查您的用户在哪些 Android 版本下遇到这些错误。例如,您的“mylib”可能依赖于某些系统库,这些系统库在较新版本的 Android 中找到,但不适用于较旧版本。例如,当我使我的本机库依赖于 AssetManager 时,我就有了这个 - 它在 Android 2.2“Froyo”下不受支持。

如果您在 jni 文件夹中的 Application.mk 中添加这样的一行,您将在其中构建您的本机库:

APP_PLATFORM := android-8

如果您使用 API 级别 8 (Android 2.2) 不支持的任何函数或类,它应该在构建期间抛出错误 - 或根据需要调整级别。

格雷格

于 2013-07-25T19:49:56.100 回答