0

对于我的一个项目,我需要将本机 c 代码调用到我的java class. 为此,我做了以下步骤。

  1. 在我的 java 类中,我声明了我的项目所需的一些本机方法。IE

    public native String print(String pM,int len);
    
    public native int openPrint();
    
  2. 我启动了如下库文件

    static
    {
        System.loadLibrary("print");
    }
    
  3. 在此之后,我创建了关于 java 代码的头文件。

  4. 创建c文件并在c中实现上述方法

  5. 在此之后我生成了库文件,即libprint.so使用ndk-build

  6. 库文件创建成功libs->armeabi->libprint.so

  7. 每当我运行该 java 应用程序时,它都会给出错误提示

    Exception in thread "main" java.lang.UnsatisfiedLinkError: 
      no print in java.library.path
    

我该如何解决这个问题。?

我想将这种应用程序提供给其他 Android 开发人员,以便他们可以在不进行 Native 调用且不创建libprint.so文件的情况下创建此应用程序

这意味着我必须将自己的 API 提供给应用程序开发人员。为此,我必须创建 JAR 文件。其中包括java.classlibprint.so(共享库)等...

如何创建 JAR 文件,其中libprint.so还包括..

我正在使用 Eclipse 和 open-jdk6 在 ubuntu 中完成上述所有工作。

4

1 回答 1

0

在 Windows 中,如果 jar 使用 dll,则必须将 dll 复制到 jar 内的根文件夹中。之后程序会找到它。

试试看,也许对你有帮助。

于 2012-09-18T07:35:48.403 回答