【问题标题】:How do you tell Android Studio 3.0 where to find external ndk source files?你如何告诉 Android Studio 3.0 在哪里可以找到外部 ndk 源文件?
【发布时间】:2017-10-18 18:38:32
【问题描述】:

我们有一个 ndk 构建,作为构建的一部分(在一个简单的 CMakeLists.txt 文件中的 add_custom_command 中)运行一个 gnu make。当我们在 Android Studio 3.0 中构建时,构建的错误消息被部分处理,因此它们在错误窗格中显示为实际错误,但双击它们没有任何作用。

我们如何告诉 Android Studio 3.0 在哪里可以找到这些构建所引用的源文件? (我们将完成将它们转换为 cmake 所需的工作的可能性小于零。它们一点也不小,而且它们涉及许多第三方项目,每个项目都有自己的自定义构建系统。 )。

【问题讨论】:

    标签: makefile android-ndk android-studio-3.0


    【解决方案1】:

    这是一种 hack,但它解决了主要问题。将虚拟静态库添加到您的 CMakeLists.txt,例如

    FILE(GLOB_RECURSE
        DUMMY1_SOURCES
        /path/to/third-party/project/*.cpp)
    
    add_library( dummy1 STATIC ${DUMMY1_SOURCES})
    

    CMake 在构建过程中会忽略这个静态库,因为主要目标不依赖它,但是文件会出现在 cpp 下的 ANdroid 视图中 节点。

    构建的错误消息被部分处理,因此它们在错误窗格中显示为实际错误,但双击它们没有任何作用。

    这很奇怪,我可以添加一个格式的消息

    message (ERROR "
        /home/alex/test/jni/Android.mk:10")
    

    即使该文件不属于项目,也不是 C++,它仍然在我的 Gradle 控制台和消息窗口中显示为可点击的链接。

    【讨论】:

    • +1,虽然它实际上并没有解决问题。它确实将文件中的符号添加到 Android Studio(因此您可以使用导航到符号之类的东西),但它不会连接错误,因此您可以单击错误并跳转到源代码。
    • 有趣的是,文件中确实出现了红色波浪线,因此绝对值得这样做。不过从小处着手——尝试批量添加我们系统中的每个 *.c 文件,甚至从未完成导入;我最终只是为我正在处理的特定部分带来了文件。
    • re:但双击错误消息 - 请参阅更新
    猜你喜欢
    • 1970-01-01
    • 2012-07-31
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    相关资源
    最近更新 更多