我喜欢构建与 NDK 一起提供的 Android NDK 示例“native-audio”。NDK 提供的编译器毫无怨言地吞下了它,但 Eclipse 在 file 中显示了几个错误native-audio-jni.c
。
在下面的代码摘录中,所有静态变量声明都有红色下划线,因为 Eclipse 声称无法解析类型。它们是在文件中定义的,如果我+左键单击OpenSLES.h
文件,Eclipse 会找到它。Ctrl
请注意,与示例源相比,我修改了包含hello_clip
和的行android_clip
——我还将数组声明放在那些“头”文件中(它们只包含逗号分隔的数据),因为 Eclipse 在解析语法时也有问题:
static const char array[] = #include"blah.h";
我尝试了互联网上建议的东西,比如从eclipse.exe -clean
、清理项目/重建、刷新项目等开始,都没有帮助。
那么,Eclipse 无法解析这些类型的原因/解决方案是什么?
#include <assert.h>
#include <jni.h>
#include <string.h>
// for __android_log_print(ANDROID_LOG_INFO, "YourApp", "formatted message");
// #include <android/log.h>
// for native audio
#include <SLES/OpenSLES.h>
#include <SLES/OpenSLES_Android.h>
// for native asset manager
#include <sys/types.h>
#include <android/asset_manager.h>
#include <android/asset_manager_jni.h>
// pre-recorded sound clips, both are 8 kHz mono 16-bit signed little endian
// includes data arrays here
#include "hello_clip.h"
#include "android_clip.h"
// engine interfaces
static SLObjectItf engineObject = NULL;
static SLEngineItf engineEngine;
// output mix interfaces
static SLObjectItf outputMixObject = NULL;
static SLEnvironmentalReverbItf outputMixEnvironmentalReverb = NULL;
(该文件充满了更多这些问题)