【发布时间】:2018-11-02 09:16:03
【问题描述】:
操作系统:macOS 10.13.3 IDE:安卓工作室 1.5.1 g++:4.2.1
场景: 我想使用 c++ 使用 NDK 进行开发。当我定义要构建的 c++ 类时,Gradle 控制台返回如下错误:
> src/main/jni/addcomputer.c:23:12: error: expected ';' after top level declarator
jclass Test{
^
;
1 error generated.
make: *** [build/intermediates/ndk/obj/local/arm64-v8a/objs/addcomputer/addcomputer.o] Error 1
:app:ndkBuild FAILED
我的 .cpp 如下所示:
#include "com_BTC_ui_JNI.h"
//......
JNIEXPORT jstring JNICALL
Java_com_BTC_ui_JNI_getString(JNIEnv *env, jobject instance)
{
return (*env)->NewStringUTF(env, "mytest-sample-x");
}
JNIEXPORT jint JNICALL
Java_com_BTC_ui_JNI_plus(JNIEnv *env, jobject instance, jint a, jint b)
{
return a+b;
}
jclass Test{//this is where the error occur
private:
jint mytest;
};
当我打开一个终端来构建一个包含类定义的 .cpp 文件时,它返回相同的错误。我找不到原因。有人可以帮助我吗?
【问题讨论】:
-
你的意思是
class Test? -
是的。只是一个测试。我定义它是为了测试。
-
错误消息显示“addcomputer.c”,但您提到了“.cpp”文件。会不会是你编译为 C 而不是 C++?
-
jclass是指针类型。jclass Test { private: jint mytest; };毫无意义。
标签: c++ android-ndk