UnsatisfiedLinkError噩梦

时间:2013-06-19 08:05:39

标签: android java-native-interface unsatisfiedlinkerror

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

  1. 引起:java.lang.UnsatisfiedLinkError:无法加载mylib:findLibrary返回null
  2. 引起:java.lang.UnsatisfiedLinkError:找不到库mylib
  3. 无法从加载程序dalvik.system.PathClassLoader加载mylib [dexPath = / system / framework / com.google.android.maps.jar: /system/app/it.mycompany.myapp.apk,library
  4. java.lang.UnsatisfiedLinkError:找不到本机方法:(该函数存在且已实现)
  5. 我使用以下代码在代码中加载我的lib:System.oadLibrary(“mylib”);

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

    请您提供一些建议

1 个答案:

答案 0 :(得分:2)

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

如果你在你的jni文件夹中添加这样的一行到Application.mk,你可以在那里构建你的本机库:

APP_PLATFORM:= android-8

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

格雷格