2
作爲一款Android NDK首發,我嘗試運行helloJni的例子,我在NDK網站在這裏找到: https://developer.android.com/ndk/samples/sample_hellojni.html的Android NDK的C++的HelloWorld程序崩潰
我設法編譯和程序與所提供的C代碼運行項目。但是,我想將代碼轉換爲C++等效。幾個小時都沒有成功。
我做了什麼:
重命名JNI/HELLO-jni.c - > JNI/HELLO-jni.cpp
在JNI變化/ android.mk
LOCAL_SRC_FILES := hello-jni.c
到
LOCAL_SRC_FILES := hello-jni.cpp
用jni/hello-jni.cpp中的以下C++代碼替換c代碼
#include <string.h>
#include <jni.h>
JNIEXPORT jstring JNICALL
Java_com_example_hellojni_HelloJni_stringFromJNI
(JNIEnv *env, jobject obj)
{
return env->NewStringUTF("Hello from C++ over JNI!");
}
大廈是成功的輸出
/home/wenchao/Projects/shared/android-ndk-r10e/ndk-build all
Android NDK: WARNING: APP_PLATFORM android-21 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml
[arm64-v8a] Install : libhello-jni.so => libs/arm64- v8a/libhello-jni.so
[x86_64] Install : libhello-jni.so => libs/x86_64/libhello-jni.so
[mips64] Install : libhello-jni.so => libs/mips64/libhello-jni.so
[armeabi-v7a] Install : libhello-jni.so => libs/armeabi-v7a/libhello-jni.so
[armeabi] Install : libhello-jni.so => libs/armeabi/libhello-jni.so
[x86] Install : libhello-jni.so => libs/x86/libhello-jni.so
[mips] Install : libhello-jni.so => libs/mips/libhello-jni.so
18:09:12 Build Finished (took 412ms)
但我的設備上,我得到了
Unfortunately, HelloJni is stopped.
而且很奇怪,在logcat中無輸出。 Logcat完全空白。 (這可能是一個單獨的問題,我需要修復,雖然)
我不知道如何在所有:(
C不是C++不是C – Olaf
我知道,但我們可以建立C++代碼NDK右 – GingerJim
誰是「我們」的提示:!?。檢查我的編輯和重新思考 – Olaf