Android Studio 4.0+版本 生成so包,并使用
1.新建个Native C++项目
一直next等编译完成
2.打开main-cpp-native-lib.cpp 文件
Java_com_example_myapplication_MainActivity_stringFromJNI ()这个方法就是我们和so包交互的方法。这个需要你要调用的地方的包名对应,要不然找不到方法。新建了一个方法:(使用的时候包名:com.example.test ; 类名:JNIUtils;方法名:getDefalutkey )
然后重新Rebuild project。
我们需要的so包就在这里面。
使用我们生成的so包。新建一个android项目:引入so包
两种引用方式,如果so包放在lib文件下,在app的build.gradle文件下在android目录下:
//放在libs目录中
sourceSets {
main {
//使用自己编写的两个mk文件,避免android studio想自动生成而导致错误。
jniLibs.srcDirs = ['libs'] //libs表示libs文件夹的地址,一定要保证正确
}
}
如果放在main目录下jniLibs则不需要过多配置
引入so包,新建JNIUtils,注意包名和C语言中的对应。在MainActivity调用一下:
运行结果如下:
这样生成和在另外一个项目中调用就完全调试通了。