尝试为安卓编译时出错"'JNIEXPORT' does not name a type"
Error "'JNIEXPORT' does not name a type" while trying to compile for Android
我试图用NDK编译c++代码在Android上使用。然而,当我尝试编译时,我得到了这个错误:
error: 'JNIEXPORT' does not name a type (File: JNIApi.h, line: 9)
error: 'JNIEXPORT' does not name a type (File: JNIApi.h, line: 10)
JNIApi.h如下所示:
#pragma once
extern "C"
{
JNIEXPORT void JNICALL Java_com_manabreak_tremortest_TremorLauncher_initTremor(JNIEnv* jenv, jobject obj);
JNIEXPORT void JNICALL Java_com_manabreak_tremortest_TremorLauncher_setSurface(JNIEnv* jenv, jobject obj, jobject surface);
}
构建过程输出如下:
Build started 1.8.2014 11:14:17.
1>Project "E:TremorbuildTremor.vcxproj" on node 2 (Build target(s)).
1>ClCompile:
E:ADTndktoolchainsarm-linux-androideabi-4.8prebuiltwindows-x86_64binarm-linux-androideabi-g++.exe JNIApi.cpp
E:ADTndktoolchainsarm-linux-androideabi-4.8prebuiltwindows-x86_64binarm-linux-androideabi-g++.exe -o Android/Debug/JNIApi.o -marm -fno-strict-aliasing -funswitch-loops -finline-limit=100 -fomit-frame-pointer -fno-exceptions -fpic -fstack-protector -fno-rtti -fno-short-enums -x c++ -Wno-psabi -IE:/ADT/ndk/platforms/android-19/arch-arm/usr/include -IE:/ADT/ndk/sources/cxx-stl/gnu-libstdc++/4.8/include -IE:/ADT/ndk/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include -DANDROID_NDK -DANDROID -D__ANDROID__ -D__ARM_EABI__ -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__ -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -O0 -g -std=c++11 -march=armv7-a -mtune=xscale -c -MD ../src/platforms/android/JNIApi.cpp
TRApplicationContext.cpp
E:ADTndktoolchainsarm-linux-androideabi-4.8prebuiltwindows-x86_64binarm-linux-androideabi-g++.exe -o Android/Debug/TRApplicationContext.o -marm -fno-strict-aliasing -funswitch-loops -finline-limit=100 -fomit-frame-pointer -fno-exceptions -fpic -fstack-protector -fno-rtti -fno-short-enums -x c++ -Wno-psabi -IE:/ADT/ndk/platforms/android-19/arch-arm/usr/include -IE:/ADT/ndk/sources/cxx-stl/gnu-libstdc++/4.8/include -IE:/ADT/ndk/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include -DANDROID_NDK -DANDROID -D__ANDROID__ -D__ARM_EABI__ -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__ -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -O0 -g -std=c++11 -march=armv7-a -mtune=xscale -c -MD ../src/platforms/android/TRApplicationContext.cpp
E:TremorsrcplatformsandroidTRApplicationContext.cpp(3): includes this header: 0:
1>E:TremorsrcplatformsandroidJNIApi.h(9,2): error : 'JNIEXPORT' does not name a type
JNIEXPORT void JNICALL Java_com_manabreak_tremortest_TremorLauncher_initTremor(JNIEnv* jenv, jobject obj);
^
1>E:TremorsrcplatformsandroidJNIApi.h(10,2): error : 'JNIEXPORT' does not name a type
JNIEXPORT void JNICALL Java_com_manabreak_tremortest_TremorLauncher_setSurface(JNIEnv* jenv, jobject obj, jobject surface);
^
1>Done Building Project "E:TremorbuildTremor.vcxproj" (Build target(s)) -- FAILED.
Build FAILED.
Time Elapsed 00:00:00.52
必须包含JNI头文件:
#include <jni.h>
这将定义宏JNIEXPORT
和JNICALL
,更不用说JNI所需的所有其他类型等。
相关文章:
- 将系数存储在头文件的数组中("does not name a type"错误)
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- 由于"error C4430: missing type specifier - int assumed. Note: C++ does not support default-int",我现在无法编
- 如何解决"'mutex' in namespace 'std' does not name a type"?
- 在 C++ 中使用命名空间时出现"does not name a type"错误
- 已声明时"Does not name a type"错误
- 嵌套类"does not name a type"
- "what does ":*** [可执行文件] 错误 1 " mean ?"
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么
- Eigen loadMarket does not compile
- 为什么当我的代码超出函数范围时,"does not name a type"出现编译器错误?
- 创建C++ Redis 模块 - "does not export RedisModule_OnLoad() symbol"
- 无法分隔标头类。我得到"does not name a type"
- 模板元编程:"does not have integral or enumeration type"
- 如何修复类函数"prototype does not match"和"cadidate is"错误
- #define 的"Declaration does not declare anything"错误
- 修复第三方代码:"error: ‘enable_if’ in namespace ‘std’ does not name a template type"
- 在 c++ 中,如果包含标头,为什么我会收到'does not a name of type'错误?
- 什么原因导致我的"‘FatalError’ in namespace ‘Foam’ does not name a type"错误?
- 尝试为安卓编译时出错"'JNIEXPORT' does not name a type"