Android Studio引用NDK生成的so文件

来源:互联网 发布:广州服装市场网络批发中心 编辑:程序博客网 时间:2024/05/17 00:54

上篇文章中提到了生成的so文件的目录。现在就讲一下怎么使用NDK编译好的So文件。


一,复制so文件到新建的项目中

二,配置一些基本信息

三,使用so文件中的方法


一。

1,复制lib路径下的文件夹以及so文件。


2,新建一个项目叫Demo,将复制的文件夹和so文件复制到lib 目录下



二。

1,在app build.gradle 的文件的 android 结点 中加入以下代码:

sourceSets {    main {        jniLibs.srcDirs = ['libs']    }}

如下图:



三。

1,由于上次编译的c文件中的方法 指定了包名类名方法名。所以需要和so文件保持对应的包名类名和方法名。同时在java类中添加引用so文件代码

static {    System.loadLibrary("JniLibName"); //和生成so文件的名字对应。}

public native String getString();//与so文件中方法对应




运行项目。调用so成功 !

Over!



可能出现的错误:

1,包名或者类名与 so文件不对应,或者没有在java文件中没有loadLibrary("")。

java.lang.UnsatisfiedLinkError: Native method not found: com.android.talon.test1.JniUtils.getString:()Ljava/lang/String;

2,app/ builed.gradle 中没有添加如下代码:

sourceSets {    main {        jniLibs.srcDirs = ['libs']    }}

java.lang.UnsatisfiedLinkError: Couldn't load JniLibName from loader dalvik.system.PathClassLoader

2 1