Android Studio 使用Android.mk文件控制编译so,不用AS自动的

来源:互联网 发布:淘宝国际网店 编辑:程序博客网 时间:2024/06/16 01:11

Android Studio 可以配置build.gradle , main/jni文件夹中的c/c++文件会自动打包成so,但是如果有不同模块的文件,要编译出多个so文件,就不知道在gradle文件中咋配置了(可能也可以配置),这时就可以用原来eclipse的写法; 

main/jni文件夹按照原来eclipse的方法去写Android.mk和Application.mk,然后在main目录下执行ndk-build命令,该目录下会创建libs目录,里边就是生成的so,将项目配置的jniLibs.srcDirs指向src/main/libs就行;
这时有几个问题,一个是AS会自动重复编译jni中的文件,打包后会多一个没用的so,还有如果用了第三方的so文件会和自己项目的so文件冲突,因为每次ndk-build后都会删除原来文件夹中的其他so文件.
先去掉 defaultConfig中的ndk配置,然后配置 :
sourceSets{
    main{
       //指定so库的位置,前边的是自己项目的,后边的是第三方的so
       jniLibs.srcDirs=['src/main/libs','libs']
       //禁止 android studio 自动编译
       jni.srcDirs=[]
    }
}



1 0
原创粉丝点击