java.lang.unsatisfied链接错误。在eclipse中为Android应用程序添加.so文件的位置

标签 java android jar java-native-interface

我使用 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/

相关文章:

android - 如何将屏幕旋转锁定到当前状态

android - 如何在 Android 中将 PDF 转换为 HTML 页面?

java - Gradle避免生成类目录

java - 如何更新预先存在的 Jar 文件

java - 蓝牙设备连接问题

java - 我的主 java 类如何知道任何其他 java 类中是否引发了任何异常

java - 代码需要在 JSP 声明部分中使用 try/catch 而不是在 scriptlet 部分中?

java - 替换 Groovy 中现有字符串中的字符串

java - 如何将 HTML 字符串转换为 XML DOM

java - 带 testNG 的 spring 没有子类化