使用AndroidStudio编译.SO文件
1.AndroidStudio的配置
(1),Plugn下载ndk并配置路径
(2),Mac操作在Terminal中配置环境变量,命令行输入:
touch .bash_profile
open .bash_profile
文件内容如下:
export JAVA_HOME=`/usr/libexec/java_home`
export PATH=${PATH}:${JAVA_HOME}:${ANDROID_SDK_ROOT}:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_SDK_ROOT}/tools:${JAVA_HOME}:${JAVA_HOME}/bin
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
export ANDROID_SDK_ROOT="/Users/admin/Library/Android/sdk"
export PATH=/Users/admin/Library/Android/sdk/android/platform-tools/:$PATH
export NDK_ROOT=/Users/admin/Library/Android/sdk/ndk-bundle
export PATH=$PATH:$NDK_ROOT/
export NDK_PROJECT_PATH=/Users/admin/love/CMM_V4/lib.framework(jni所在路径)
输入ndk-build,
(3),配置jni所在moudle的build.gradle,如下:
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 11
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
externalNativeBuild {
ndkBuild {
path file("src//main//jni//Android.mk")
}
}
buildTypes {
debug{
// buildConfigField("String", "TOKEN", rootProject.config.token_debug)
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDir 'src/main/libs'
}
}
}
(4),在src/main下新建jni目录,将需要编译的库放在jni目录下。
(1),创建Android.mk文件
(2),创建Application.mk文件
(5).创建调用C代码的类
public Class SimpleLame{
System.loadLibrary(“libmp3lame”);(和Android.mk保持一致)
}
使用命令行生成头文件.h
创建.c文件,实现.h里的方法
关于mac androidstudio生成头文件的命令行
(6),进入jni所在目录,ndk-build
(7),使用.so文件