NDK開發_AndroidStuido中建立和編譯ndk流程
阿新 • • 發佈:2019-01-13
一、根據native類生成 native類的標頭檔案
1> 如下圖所示,com.lhs.serial.ObdNative 是自己建的native類;
2> cmd 切到 工程的java目錄下, 輸入 javah -d ../jni com.lhs.serial.ObdNative;
3> 可以看到 在 jni檔案目錄下,生成了 com_lhs_serial_ObdNative.h ;
4> 新建 .cpp ,實現 com_lhs_serial_ObdNative.h 中的內容;
二、編譯 .cpp ,生成 .so
1>在 jni目錄下新建 Android.mk
2> 修改gradle,根據Android.mk 自動編譯 .cpp
- - - - - - - - - app 目錄下的 build.gradle 配置
android {compileSdkVersion 25buildToolsVersion "25.0.2"defaultConfig {applicationId "com.mct.interation.service"minSdkVersion 15targetSdkVersion 25versionCode 1versionName "1.0"externalNativeBuild {
ndkBuild{
abiFilters 'armeabi-v7a'}
}
}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}externalNativeBuild {
ndkBuild{
path 'src/main/jni/Android.mk'
}
}
}task ndkClean(type: Delete) {delete ".externalNativeBuild/"}clean.dependsOn 'ndkClean'
工程根目錄下的build.gradle, class path 中的gradle版本需要修改為2.2.0以上 (不然會報錯找不到 externalNativeBuild 方法)
三、完成上面步驟後,執行工程的時候,就會自動生成 .so,並打包進 apk
【遇到的問題】
1、Could not find method externalNativeBuild() for arguments
【action】