.so文件使用总结

167 阅读1分钟

1、将.so文件放在使用moudle下的对应CPU架构内

2、确定代码中有调用函数

static {
   System.loadLibrary("serial_port");
}

3、在使用moudle的build申明.so文件的路径

 sourceSets {
main {
//            jniLibs的目录使用jniLibs
            jniLibs.srcDirs = ['src/main/jniLibs']
        }
} 

4、打包后,查看.apk内的libs包含哪些CPU架构的文件;

在app的build内添加一下红色的代码;对应的CPU架构,有的填上即可

android {
compileSdk rootProject.compileSdk

    defaultConfig {
applicationId "包名"
        minSdk rootProject.minSdk
        targetSdk rootProject.targetSdk
        versionCode rootProject.versionCode
        versionName rootProject.versionName

        buildFeatures {
dataBinding true
        }
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        ndk  { 
//            abiFilters  "arm64-v8a"
            abiFilters  "armeabi-v7a", "x86"
         } 

扩展

Android Studio项目中jniLibs和libs的区别

libs是存放jar文件的在Project目录下与src同级(添加完jar文件需要右键点击Add As Library来会自动生成相关的一些文件),

jniLibs是存放SO文件的在Project目录下的src下的main文件夹下的