【问题标题】:Verbose build logs from Android Studio来自 Android Studio 的详细构建日志
【发布时间】:2021-03-08 20:15:23
【问题描述】:

在使用 Android Studio 构建时,如何获取详细日志(包括编译器和链接器的命令行参数)?

我刚刚从 Ant / Android.mk 构建过渡到 Android-Studio 构建。 使用旧系统,我可以看到编译器是如何被调用的:

$ ndk-build V=1

在 Android Studio 中实现此目的的等效设置是什么? 我怀疑我的项目是针对错误的 GLES 版本(gles2 而不是 gles3)构建的,并希望通过查看链接器的命令行参数来确保。

【问题讨论】:

    标签: android android-studio android-ndk build.gradle


    【解决方案1】:

    关于https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/NdkBuild,不可能传递参数。
    但是你可以传递一个用于输出的文件夹,它会生成 .json 文件

        externalNativeBuild {
            ndkBuild {
                // Tells Gradle to put outputs from external native
                // builds in the path specified below.
                buildStagingDirectory "./outputs/ndk-build"
                path 'Android.mk'
            }
        }
    

    所以在我的例子中,outputs/ndk-build/debug/json_generation_record.json 最后一条“消息”告诉我错误:

    JSON generation completed with problem. Exception: Build command failed.
    Error while executing process .... ndk-build.cmd ....
    ...
    Android.mk:myLib-prebuilt: LOCAL_SRC_FILES points to a missing file 
    Android NDK: Check that ... exists  or that its path is correct 
    ...prebuilt-library.mk:45: *** Android NDK: Aborting    .  Stop.\n"
    

    【讨论】:

      【解决方案2】:

      事实证明,您可以通过如下更改 build.gradle 文件来使构建变得详细:

          externalNativeBuild {
              cmake {
                  arguments "-DCMAKE_VERBOSE_MAKEFILE=1"       
              }
          }
      

      当使用 ndk-build 而不是 cmake 时,请改用这个:

          externalNativeBuild {
              ndkBuild {
                  arguments "V=1"
              }
          }
      

      【讨论】:

      • ndkBuild块里没有arguments "V=1"这样的配置`
      • 如果您遇到 Gradle 错误,您需要将 externalNativeBuild 部分放入 defaultConfig 部分中
      • 我没有 defaultConfig 部分,如果将​​其放在文件的根级别,上面的详细选项语法将不起作用:找不到参数的方法 externalNativeBuild() [build_3oifztzr5n296zezo3h5iddmk $_run_closure1$_closure4@49771ff] 在 org.gradle.api.internal.initialization.DefaultScriptHandler 类型的对象上。
      猜你喜欢
      • 1970-01-01
      • 2011-03-26
      • 2021-08-11
      • 2013-09-21
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 2020-08-18
      相关资源
      最近更新 更多