【问题标题】:Android NDK: unused import statement with header fileAndroid NDK:未使用的带有头文件的导入语句
【发布时间】:2018-08-13 08:21:17
【问题描述】:

我正在尝试在 Android Studio 中向我的 C++ 项目添加跟踪,我只是按照文档中的示例在我的应用中创建一个小型分析库:https://developer.android.com/ndk/reference/group/tracing

我在 Android Studio 中的“#include”行中收到“未使用的导入语句”消息以及 error: use of undeclared identifier 'ATrace_beginSection' 编译错误。我的库的 CMakeLists.txt 文件是:

project(profiling)

if(ANDROID)
    include_directories(${ANDROID_SYSROOT}/usr/include)
    message(STATUS "Including ${ANDROID_SYSROOT}/usr/include")
endif()

set(profiling_SRCS
  profiling.cpp
  )

set(profiling_HEADERS
  profiling.h
  )

add_library(profiling STATIC ${profiling_SRCS} ${profiling_HEADERS})

我已经检查了上面的“消息”条目的 cmake 日志,ANDROID_SYSROOT 确实指向了正确的位置。该库显示在 Android Studio 的 app->cpp 部分中,CMakeLists.txt 文件显示在外部构建文件部分中,我尝试过重新同步 Gradle,我尝试过清理和重建,没有骰子。我的 build.gradle 中的 targetSdkVersion 设置为 27。

我错过了什么?

【问题讨论】:

  • 我尝试过的其他没有用的方法:
  • ** 使用 target_include_directories 命令,而不是 include_directories。这些都没有改变 $INCLUDE_DIRECTORIES (我之前和之后都用消息打印了它)。我还使用set(CMAKE_C_FLAGS "-I${ANDROID_SYSROOT}/usr/include ${CMAKE_C_FLAGS}" ) 在一瞬间**检查了$ INCLUDES。这 确实 更新了 CFLAGS 但更新后的值仍然没有进入 android_gradle_build.JSON 。 (抱歉重复发布,评论编辑显然有 5 分钟超时)
  • 嘎啊。问题是 build.gradle 中的 minSdkVersion 设置 - trace.h 在顶部有这个 #if __ANDROID_API__ >= 23。不管它值多少钱,我也不需要在这个库的 CmakeLists.txt 中包含 ${ANDROID_SYSROOT}/usr/include ......希望这会在未来对其他人有所帮助。

标签: android cmake android-ndk


【解决方案1】:

啊啊啊。问题是 build.gradle 中的 minSdkVersion 设置 - trace.h 在顶部有这个 #if __ANDROID_API__ >= 23。不管它值多少钱,我也不需要在这个库的 CmakeLists.txt 中包含 ${ANDROID_SYSROOT}/usr/include ......希望这会在未来对其他人有所帮助。

【讨论】:

    【解决方案2】:

    您的 cmake 文件看起来不完整。尝试使用${CMAKE_CURRENT_SOURCE_DIR} 添加路径参考点。例如。

    cmake_minimum_required(VERSION 3.4.1)
    
    project(profiling)
    
    if(ANDROID)
        include_directories(${ANDROID_SYSROOT}/usr/include)
        message(STATUS "Including ${ANDROID_SYSROOT}/usr/include")
    endif()
    
    set(profiling_SRCS
      ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/profiling.cpp
      )
    
    set(profiling_HEADERS
      ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/profiling.h
      )
    
    add_library(profiling STATIC ${profiling_SRCS} ${profiling_HEADERS})
    

    【讨论】:

    • 不幸的是,这并没有解决问题。不过感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2018-04-17
    • 2020-10-25
    • 2019-10-27
    • 1970-01-01
    相关资源
    最近更新 更多