apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.bjw.ComAssistant"
minSdkVersion 10
targetSdkVersion 10
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_5
targetCompatibility JavaVersion.VERSION_1_5
}
sourceSets.main {
// 声明 jni 目录也就是so库的目录
jniLibs.srcDir 'src/main/libs'
// 不用项目自动生成的jni 目录
jni.srcDirs = [] //disable automatic ndk-build call
}
ndk {
// 生成 so 库的名称 ,也是system.load 后边跟的so库的名称
moduleName "serial_port"
}
}
buildTypes {
release {
minifyEnabled false
// minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn CopyToJniLibs
}
task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def ndkDir = properties.getProperty('ndk.dir')
commandLine "$ndkDir/ndk-build.cmd",
"NDK_PROJECT_PATH=$projectDir.absolutePath\\build",
"APP_BUILD_SCRIPT=$projectDir.absolutePath\\src\\main\\jni\\Android.mk",
"NDK_APPLICATION_MK=$projectDir.absolutePath\\src\\main\\jni\\Application.mk"
//你自己的mk文件目录
}
// copy so库到指定的目录
task CopyToJniLibs(type: Copy, dependsOn: 'ndkBuild', description: 'copy the native libs to jniLibs') {
from fileTree(dir: file(buildDir.absolutePath + '/libs'), include: '**/*.so')
into file('src/main/jniLibs')
}
dependencies {
compile files('libs/core.jar')
compile files('libs/library.jar')
compile files('libs/push.jar')
}
相关代码AS 工程
https://download.csdn.net/download/lsw8569013/10875709