我喜欢使用NDK提供的Android NDK示例“native-audio”。
NDK提供的编译器可以毫无怨言地吞下它,但Eclipse在文件native-audio-jni.c
中显示了几个错误。
在下面的代码摘录中,所有静态变量声明都有红色下划线,因为Eclipse声称无法解析这些类型。它们在OpenSLES.h
文件中定义,如果我 Ctrl + 左键单击文件,Eclipse会找到它。
请注意,与示例源相比,我修改了包含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;
(该文件中充满了更多这些问题)