如何将现有的.so库添加到Android Studio项目中?

时间:2015-12-30 00:11:39

标签: android android-studio android-ndk java-native-interface

有几个消息来源说你应该在src / main /中创建一个名为jniLibs / armeabi的目录,并将你编译的.so文件添加到这个位置。然后使用System.loadLibrary(“nameOflib”)加载库。

我的问题是,当我定义我的功能时

public native long create();

create()给出错误:

无法解析相应的JNI函数Java_com_brendan_myApplication_MainActivity_create。 报告Java中的本机方法声明,其中没有在项目中找到相应的JNI函数。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

事实证明,即使出现错误,我仍然可以调用jni方法 “无法解析相应的JNI函数”。

答案 1 :(得分:1)

要解决该问题,请按照以下步骤操作,然后访问以下链接:

  

在Android Studio 1.0.2中添加.so库

     
      
  1. 创建文件夹" jniLibs"在" src / main /"
  2.   
  3. 将所有.so库放在" src / main / jniLibs"夹
  4.   
  5. 文件夹结构如下所示:
    | - - app:
    | - | --src:
    | - | - | --main
    | - | - | - | --jniLibs
    | - | - - | - | - | --armeabi   
    | - | - | - | - | - | - 。so文件
  6.   
  7. 没有额外的代码只需同步您的项目并运行您的应用程序。

    参考
      https://github.com/commonsguy/sqlcipher-gradle/tree/master/src/main
  8.         

    来自:How to include *.so library in Android Studio?

编辑:我想这可能不是配置问题,而是你如何在Android NDK中声明原生方法签名

点击此链接:What is the correct way to write native method signatures in Android NDK?

希望有所帮助