Android NDK:未使用的带有头文件的导入语句

时间:2018-08-13 08:21:17

标签: android cmake android-ndk

我正在尝试向Android Studio中的C ++项目添加跟踪,我非常简单地遵循文档中的示例在我的应用中创建一个小的分析库:https://developer.android.com/ndk/reference/group/tracing

我在Android Studio中的“ #include”行上收到“未使用的导入语句”消息,并出现select department, first_name, salary from employees e1 where salary in ((select max(salary) from employees where department=e1.department), (select min(salary) from employees where department=e1.department)) order by department 编译错误。我的库的CMakeLists.txt文件是:

error: use of undeclared identifier 'ATrace_beginSection'

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

我想念什么?

2 个答案:

答案 0 :(得分:1)

Gaaaah。问题是build.gradle中的minSdkVersion设置-trace.h在顶部#if __ANDROID_API__ >= 23中具有此设置。不管它的价值如何,我也不需要在该库的CmakeLists.txt中包括${ANDROID_SYSROOT}/usr/include……希望这对以后会有帮助。

答案 1 :(得分:0)

您的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})