Android Studio中的NDK不工作
我正在做视频中的每一步: 但是没有生成共享库 这是一个版本,android studio应该自己生成共享库。但是,当我创建apropraite makefile并执行ndk build时,也不会生成共享库 MainActivity.java: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} 构建->制作项目
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:是一个目录与此处相同: