Android Studio中的NDK无法正常工作

时间:2014-12-21 16:21:59

标签: android android-ndk android-studio

我正在从视频中完成每一步: https://www.youtube.com/watch?v=kFtxo7rr2HQ 但是没有生成共享库。

这是一个版本,android-studio应该自己生成共享库。但是,当我创建apropraite Makefile并执行ndk-build时,也不会生成共享库。

MainActivity.java:

public native String HelloJNI();

static
{
    System.loadLibrary("HelloJNI");
}

构建 - >制作项目

[*@* main]$ javah -d jni -classpath {sdk_dir}/platforms/android-14/android.jar:../../build/intermediates/classes/debug com.example.ndker.ndkapp.MainActivity

创建 HelloJNI.c

#include "com_example_ndker_ndkapp_MainActivity.h"
JNIEXPORT jstring JNICALL Java_com_example_ndker_ndkapp_MainActivity_HelloJNI
        (JNIEnv *, jobject) {
    return (*env)->NewStringUTF(env, "Hello from jni");
}

local.properties:

sdk.dir={sdk_dir}
ndk.dir={ndk_dir}

build.grandle

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "com.example.ndker.ndkapp"
    minSdkVersion 14
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"

    ndk {
        moduleName "HelloJNI"
    }
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

感谢您的回复。

2 个答案:

答案 0 :(得分:2)

我创建了一篇博客文章,其中包含设置Android Studio,Gradle和NDK的文档: http://www.sureshjoshi.com/mobile/android-ndk-in-android-studio-with-swig/

另外,我在BitBucket中创建了一个示例项目,其中已经为您设置了所有内容:https://bitbucket.org/sureshjoshi/android

也许你可以尝试一下,看看它们是否适合你?

关键是Gradle现在会自动生成Makefile并为你编译!

答案 1 :(得分:0)

右。如果你把视频放在HD上,你可以意识到要生成本机编译,你应该使用“;”代替 ”:”。像:

[*@* main]$ javah -d jni -classpath {sdk_dir}/platforms/android-14/android.jar;../../build/intermediates/classes/debug com.example.ndker.ndkapp.MainActivity

以下是屏幕截图(取自您发布的视频)

enter image description here

请告诉我这是否有效!