天天看點

android調用so封裝jni,android ndk開發,調用已有的so庫封裝問題

該樓層疑似違規已被系統折疊 隐藏此樓檢視此樓

用makefile編譯出來的libNetSDK.so,帶頭檔案。想在android studio中建立一個子產品,對它進行封裝,便于調用.。

于是,我建了個netsdkutil子產品。

我将這個要調用的庫放在netsdkutil\src\main\jniLibs\armeabi目錄下

頭檔案及封裝的cpp檔案放在netsdkutil\src\main\jni 下

但make module時,出現

Error:(26) undefined reference to 'xxx'的錯誤,請問該怎麼修改?

以下為整個子產品的gradle:

apply plugin: 'com.android.model.library'

model{

android {

compileSdkVersion = 23

buildToolsVersion = "23.0.2"

defaultConfig.with {

minSdkVersion.apiLevel = 14

targetSdkVersion.apiLevel = 23

versionCode = 1

versionName = "1.0"

}

tasks.withType(JavaCompile) {

sourceCompatibility = JavaVersion.VERSION_1_7

targetCompatibility = JavaVersion.VERSION_1_7

}

}

android.ndk {

moduleName = "NetSdkUtil"

ldLibs += ["android", "log"]

cppFlags += "-fexceptions"

cppFlags += "-L${file("src/main/jniLibs/armeabi")} -lNetSDK".toString()

cppFlags += "-I${file("src/main/jni")}".toString()

abiFilters += "armeabi"

//abiFilters +="armeabi-v7a"

//abiFilters +="x86"

}

android.buildTypes {

release {

minifyEnabled = false

//proguardFiles += file( 'proguard-rules.pro')

}

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.android.support:appcompat-v7:23.1.1'

}