Android Studio中的NDK不工作

Android Studio中的NDK不工作,android,android-ndk,android-studio,Android,Android Ndk,Android Studio,我正在做视频中的每一步: 但是没有生成共享库 这是一个版本,android studio应该自己生成共享库。但是,当我创建apropraite makefile并执行ndk build时,也不会生成共享库 MainActivity.java: public native String HelloJNI(); static { System.loadLibrary("HelloJNI"); } sdk.dir={sdk_dir} ndk.dir={ndk_dir} 构建->制作项目

我正在做视频中的每一步: 但是没有生成共享库

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

MainActivity.java:

public native String HelloJNI();

static
{
    System.loadLibrary("HelloJNI");
}
sdk.dir={sdk_dir}
ndk.dir={ndk_dir}
构建->制作项目

[*@* 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");
}
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'
}
本地。属性:

public native String HelloJNI();

static
{
    System.loadLibrary("HelloJNI");
}
sdk.dir={sdk_dir}
ndk.dir={ndk_dir}
构建。格兰德

#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");
}
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'
}

谢谢您的回复。

好的。如果您将视频放在HD上,那么您可以意识到要生成本机编译,您应该使用“;”而不是“:”。比如:

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


让我知道这是否奏效

我在这里创建了一篇日志,记录了Android Studio、Gradle和NDK的设置:

此外,我还在BitBucket中创建了一个示例项目,这里已经为您设置了所有内容:

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


关键是Gradle现在将自动生成Makefiles并为您编译

当我这样做时,我收到:Error:未指定类bash:../../build/intermediates/classes/debug:是一个目录与此处相同: