2014-12-21 56 views
2

我正在做視頻中的每一步: https://www.youtube.com/watch?v=kFtxo7rr2HQ 但是沒有生成共享庫。Android Studio中的NDK不起作用

這是一個版本,android-studio應該自己生成共享庫。但是,當我創建apropraite Makefiles並執行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

對。如果你把視頻放在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

讓我知道,如果沒有的伎倆!

+0

當我這樣做,我收到: 錯誤:沒有類指定 慶典:../../build/intermediates/classes/debug:是一個目錄 – galvanize

+0

同爲這裏: HTTP:/ /stackoverflow.com/questions/27252712/android-studio-ndk-i-got-an-error-when-javah-d-jni-classpath – galvanize