java.lang.UnsatisfiedLinkError中。在eclipse中为Android应用程序添加.so文件的位置

时间:2012-09-24 07:58:49

标签: java android jar java-native-interface

我使用android NDK创建了.so文件。在xxx.java类中,我添加了一些从c / c ++文件调用的本机方法。我在自己的方法中调用这些本机方法,例如下面的

static
    {
    System.loadLibrary("print");
    }
    public native String print(String pM,int len);
    public native int openPrint();

上面的本机方法在我的方法中调用,以便其他Android应用程序开发人员可以用作API。

public static void foo(){

         openPrint()
    }

这是正确的方法吗?

出于这个原因,我创建了一个myprint.Jar文件。它还包括libprint.so文件。

我在另一个应用程序中添加了上面的jar文件,它正在从xxx.java导入该类,但每当我尝试运行该应用程序时,它会抛出一个错误,说明

  FATAL Exception,
  java.lang.UnsatisifiedLinkerror....

如何解决上述问题?

提前致谢

2 个答案:

答案 0 :(得分:1)

libprint.so需要放在libs文件夹中,然后使用:

加载
System.loadLibrary("print");

可能是java.lang.UnsatisfiedLinkError因为,c函数名称与java类的完全限定名称不匹配。
我建议关注此链接:http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/

答案 1 :(得分:1)

.so文件应放在libs - > armeabi - > xxx.so eclipse的文件夹中。然后在eclipse中创建build.properties文件,并通过这样做

提及xxx.so文件的路径
open build.properties file. 

   then click on Add Library button. 

   then one edit box will appear write below line in the edit box.



external.libs.dir=libs