NDK <Utils / Log.h>没有这样的文件或目录

Sin*_*ore 4 c++ java eclipse android android-ndk

好的,所以我想编译我在Github上获得的FM Radio应用程序,在这是我的第一次尝试之前,我从未尝试过制作低级语言应用程序,因此,尽管我首先编译了一个已经可以正常工作的项目并对其进行了分析,但Android Studio要求我要下载ND,然后再进行设置,因此出现了以下错误:`Error:Gradle:任务':app:compileDebugNdk'的执行失败。

1 / app / src / main / jni / fmr / common.cpp:17:0:/ ************************ / ******** ************ / AndroidStudioProjects / android_packages_apps_FMRadio-cm-12.1 / app / src / main / jni / fmr / fmr.h:21:23:致命错误:utils / Log.h:否这样文件或目录#include ^编译终止。制作:*** [/ ******************** / ******************** / AndroidStudioProjects /android_packages_apps_FMRadio-cm-12.1/app/build/intermediates/ndk/debug/obj/local/arm64-v8a/objs/app//******************** /********************/AndroidStudioProjects/android_packages_apps_FMRadio-cm-12.1/app/src/main/jni/fmr/common.o]错误1` 没有这样的文件或目录#include ^编译终止。制作:*** [/ ******************** / ******************** / AndroidStudioProjects /android_packages_apps_FMRadio-cm-12.1/app/build/intermediates/ndk/debug/obj/local/arm64-v8a/objs/app//******************** /********************/AndroidStudioProjects/android_packages_apps_FMRadio-cm-12.1/app/src/main/jni/fmr/common.o]错误1` 没有这样的文件或目录#include ^编译终止。制作:*** [/ ******************** / ******************** / AndroidStudioProjects /android_packages_apps_FMRadio-cm-12.1/app/build/intermediates/ndk/debug/obj/local/arm64-v8a/objs/app//******************** /********************/AndroidStudioProjects/android_packages_apps_FMRadio-cm-12.1/app/src/main/jni/fmr/common.o]错误1`

Kom*_*iek 5

看起来该项目并不是要作为独立的应用程序构建,而是作为完整固件构建的一部分(Cyanogen Mod的一部分)。该错误基本上表明utils/log.h找不到该文件。该文件不是该项目的一部分,也不是Android NDK的一部分。

为了避免必须设置一个完整的环境,您很可能不会使用,我建议选择另一个项目作为开始。

如果您真的要坚持这个项目,我建议您先对文件进行一些更改jni/fmr/fmr.h

1:更改<utils/log.h><android/log.h>

重新编译时,它可能会抱怨找不到的所有ALOG *定义。

2:替换此部分:

#undef FM_LIB_USE_XLOG

#ifdef FM_LIB_USE_XLOG
#include <cutils/xlog.h>
#undef LOGV
#define LOGV(...) XLOGV(__VA_ARGS__)
#undef LOGD
#define LOGD(...) XLOGD(__VA_ARGS__)
#undef LOGI
#define LOGI(...) XLOGI(__VA_ARGS__)
#undef LOGW
#define LOGW(...) XLOGW(__VA_ARGS__)
#undef LOGE
#define LOGE(...) XLOGE(__VA_ARGS__)
#else
#undef LOGV
#define LOGV(...) ALOGV(__VA_ARGS__)
#undef LOGD
#define LOGD(...) ALOGD(__VA_ARGS__)
#undef LOGI
#define LOGI(...) ALOGI(__VA_ARGS__)
#undef LOGW
#define LOGW(...) ALOGW(__VA_ARGS__)
#undef LOGE
#define LOGE(...) ALOGE(__VA_ARGS__)
#endif
Run Code Online (Sandbox Code Playgroud)

这部分:

#define LOGV(...)  __android_log_print(ANDROID_LOG_VERBOSE,LOG_TAG,__VA_ARGS__)
#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
#define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)
#define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)

那应该让您开始。

编辑:

我想我找到了引用的内容utils/log.h(但可能不是来自正确的项目):https : //github.com/CyanogenMod/android_frameworks_ex/blob/cm-12.0/framesequence/jni/utils/log.h