我正在尝试向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。
我想念什么?
答案 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})