我使用 android NDK 创建了 .so
文件。在 xxx.java 类中,我添加了一些 native 方法以从 c/c++ 文件调用。这些 native 方法我在我自己的方法中调用,例如如下所示,
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....
如何解决上述问题?
提前致谢
最佳答案
需要将libprint.so
放在libs文件夹下,然后使用:
System.loadLibrary("print");
可能是因为 java.lang.UnsatisfiedLinkError
,c 函数名称与 java 类的完全限定名称不匹配。
我建议点击此链接:http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/
关于java.lang.unsatisfied链接错误。在eclipse中为Android应用程序添加.so文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12560983/