Android - 使用NDK进行Gradle构建

3
我不是很熟悉NDK,我正在尝试添加一个带有jni文件夹的项目。我按照Hello-JNI教程操作成功构建了apk并在Android v.5.0.2设备上测试通过。但是当我尝试在Android v.4.4.2设备上测试时,出现了UnsatisfiedLinkError错误,我猜测这是由于JNI库未编译(在build.gradle中应用Helloworld-JNI设置后,此前曾经遇到过此错误)。我应该做哪些更改才能使APK在API>16的任何设备上运行?谢谢。

build.gradle(项目):

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle-experimental:0.7.2'
}
}

allprojects {
     repositories {
         jcenter()
    }
}

task clean(type: Delete) {
delete rootProject.buildDir
}

build.gradle(模块):

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

model {
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.name.appname"
        minSdkVersion.apiLevel 16
        targetSdkVersion.apiLevel 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles.add(file('proguard-android.txt'))
        }
    }
    ndk {
        moduleName "module 1.0"
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
}
1个回答

2

我找到了答案,显然在使用ndk时这是一个常见错误。您必须使用最小目标而不是最后一个目标进行编译。我在build.gradle中更改了设置,现在它可以工作了。 "ndk平台不向后兼容,而是向前兼容!" http://ph0b.com/android-abis-and-so-files/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接