Android Studio 4.0+版本 生成so包,并使用
1.新建個(gè)Native C++項(xiàng)目
image.png
一直next等編譯完成
2.打開(kāi)main-cpp-native-lib.cpp 文件
image.png
Java_com_example_myapplication_MainActivity_stringFromJNI ()這個(gè)方法就是我們和so包交互的方法稚机。這個(gè)需要你要調(diào)用的地方的包名對(duì)應(yīng)伦仍,要不然找不到方法。新建了一個(gè)方法:(使用的時(shí)候包名:com.example.test 怖喻; 類(lèi)名:JNIUtils底哗;方法名:getDefalutkey )
image.png
然后重新Rebuild project。
image.png
我們需要的so包就在這里面锚沸。
使用我們生成的so包跋选。新建一個(gè)android項(xiàng)目:引入so包
兩種引用方式,如果so包放在lib文件下哗蜈,在app的build.gradle文件下在android目錄下:
//放在libs目錄中
sourceSets {
main {
//使用自己編寫(xiě)的兩個(gè)mk文件前标,避免android studio想自動(dòng)生成而導(dǎo)致錯(cuò)誤。
jniLibs.srcDirs = ['libs'] //libs表示libs文件夾的地址恬叹,一定要保證正確
}
}
如果放在main目錄下jniLibs則不需要過(guò)多配置
image.png
引入so包候生,新建JNIUtils同眯,注意包名和C語(yǔ)言中的對(duì)應(yīng)绽昼。在MainActivity調(diào)用一下:
image.png
運(yùn)行結(jié)果如下:
image.png
這樣生成和在另外一個(gè)項(xiàng)目中調(diào)用就完全調(diào)試通了。