繁体   English   中英

Android - 使用NDK构建Gradle

[英]Android - Gradle build with NDK

我对NDK不太熟悉,我正在尝试添加一个带有jni文件夹的项目。 我按照Hello-JNI教程进行了操作,并成功构建了apk并在使用Android v.5.0.2的设备上进行测试。 但是当我尝试在4.4.2版本的设备上测试它时,我得到一个UnsatisfiedLinkError,我猜它是由非编译的JNI库造成的(我之前有过这个错误,而不是在应用Helloword-JNI的设置之后在build.gradle)。 我应该做些什么更改才能使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'
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM