【发布时间】:2015-07-19 17:13:43
【问题描述】:
作为 Android NDK 入门者,我尝试运行在 ndk 网站上找到的 helloJni 示例: https://developer.android.com/ndk/samples/sample_hellojni.html
我设法使用项目中提供的 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!
-
我知道,但是我们可以用 NDK 构建 c++ 代码,对吧?
-
“我们”是谁?提示:检查我的编辑并重新考虑。
-
你的“编辑”是什么意思?
标签: android c++ android-ndk