簡體   English   中英

NDK <Utils/Log.h> 沒有相應的文件和目錄

[英]NDK <Utils/Log.h> no such file or directory

好的,我想編譯一個我在Github上選擇的FM收音機應用程序,在我第一次嘗試之前,我從未嘗試過制作低級語言應用程序,因此我首先編譯了一個已經正在運行的項目並進行分析,Android工作室問道我下載ND后設置它我開發了這個錯誤:`錯誤:Gradle:執行失敗的任務':app:compileDebugNdk'。

com.android.ide.common.internal.LoggedErrorException:無法運行命令:/ Applications / adt-bundle-mac-x86_64-20140702 / ndk / ndk-build NDK_PROJECT_PATH = null APP_BUILD_SCRIPT = / ********* *********** / ******************** / AndroidStudioProjects / android_packages_apps_FMRadio厘米12.1 /應用程序/生成/中間體/ NDK /調試/Android.mk APP_PLATFORM = android-21 NDK_OUT = / ******************** / ***************** *** / AndroidStudioProjects / android_packages_apps_FMRadio-cm-12.1 / app / build / intermediates / ndk / debug / obj NDK_LIBS_OUT = / ******************** / *** ***************** / AndroidStudioProjects / android_packages_apps_FMRadio-cm-12.1 / app / build / intermediates / ndk / debug / lib APP_ABI = all錯誤代碼:2輸出:包含在文件中/ ******************** / ******************** / ******* ************* / android_packages_apps_FMRadio-cm-12.1 / app / src / main / jni / fmr / common.cpp:17:0:/ *********** ********* / ******************** / AndroidStudioProjects / android_packages_apps_FMRadio厘米12.1 /應用/ SRC /主/ JNI / FMR / FMR .h:21:23:致命錯誤:util s / Log.h:沒有這樣的文件或目錄#include ^編譯終止。 make:*** [/ ******************** / ******************** / 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

看起來該項目並不打算作為獨立應用程序構建,而是作為完整固件構建(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

這部分:

#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__)

這應該讓你開始。

編輯:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM