我正在从视频中完成每一步: 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'
}
感谢您的回复。
答案 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
以下是屏幕截图(取自您发布的视频)
请告诉我这是否有效!