我使用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....
如何解决上述问题?
提前致谢
答案 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