我刚刚将NDK安装到Eclipse上,但我遇到了一些麻烦......
以下是代码:
#include <jni.h>
#include <stdlib.h>
#include <stdio.h>
void deleteFile(const char *fileName) {
remove(fileName);
}
void writeFile(const char *fileName, byte array) {
}
但是出了点问题......我收到了这个错误:
jni/[projectName].cpp:9:38: error: 'byte' has not been declared
字节无法解析!这是一个很大的问题,因为我绝对需要那种类型..我必须用它来将数据写入文件!
我已经学过很多教程,我也尝试导入所有的MinGW库但没有成功。
答案 0 :(得分:1)
byte
不是标准的C或C ++类型......它可能是非标准头文件中的typedef
。你在哪里看过那种类型的代码?可能您想使用const unsigned char *
?
我知道Visual Studio定义了BYTE类型:
typedef unsigned char BYTE; // 8-bit unsigned entity.
typedef BYTE * PBYTE; // Pointer to BYTE.
但这不是标准。它是&#34; BYTE&#34;而不是&#34;字节&#34;。
答案 1 :(得分:0)
&#39;字节&#39;在标准C或C ++中不存在,如果您的所有代码都依赖于,请使用&#39; jbyte&#39;相反,它在此标头中定义,并映射到8位无符号整数类型。
或者,您可以定义&#39; byte&#39;使用typedef,如:
typedef unsigned char byte;
确保所有来源都使用/解析此内容(例如将其放在共享标头中)。
更正确的方法是:
#include <inttypes.h>
typedef uint8_t byte;
它在所有受支持的Android平台上都是等效的,但需要额外的包含。
(从技术上讲,&#39; char&#39;在一些非常奇怪的平台上可能超过8位,但它们都不会被Android定位)。