Android JNI基本应用程序在运行时提供异常 - java.lang.ExceptionInInitializerError,java.lang.UnsatisfiedLinkError

时间:2012-06-28 16:05:15

标签: java android android-ndk

我正在http://permadi.com/blog/2011/12/running-android-ndk-examples-using-eclipse-and-sequoyah/关注android jni开发的基础教程。在转向问题之前,我通过设置“cmd F:\ Android \ android-ndk-r8 \ ndk-build”来构建命令来解决构建错误。

更改了构建命令 Changed build command

希望没错。但现在它给出了以下错误。我在这里添加了logcat。 Logcat

我可以看到这里显示的两个例外是java.lang.UnsatisfiedLinkError和java.lang.ExceptionInInitializerError。我无法弄清楚究竟是什么造成的。据说你可以通过添加libJniTest.so来修正UnsatisfiedLinkError以纠正路径。但我找不到它。我在我的Windows机器上运行搜索以找到libjnitest.so但它无处可去。这是问题,如果有人可以说它应该在哪里。有超过一千个问题与此相同,但我花了好几个小时后无法解决问题。

这是我的代码。 Java代码 Java code 请注意,iv'e注释了本机函数调用,但我可以看到问题在于加载库。 本机代码 Native code

这里我添加了文件夹结构。

enter image description here

2 个答案:

答案 0 :(得分:1)

您需要从项目的主目录运行$(NDK)/ ndk-build才能创建.so库,它们应自动复制到libs /文件夹中。

这假设您的源代码旁边有一个带有Android.mk的正确jni /文件夹。

您可能希望从ndk samples目录中看到hello-jni示例,以获取包含所有需要的部分的官方示例。

答案 1 :(得分:0)

再次清理并构建项目。它会得到解决。我解决了这个问题。