在Android Studio中的"构建"中检测到哪些错误 - Gradle的角色

use*_*117 9 xml android gradle android-studio

我正在从Eclipse转换到Android Studio,我发现我仍然对Android Studio中有关检测错误的不同组件感到困惑.我有一个包含大约20个Java文件和30个XML文件的项目.我最近跑了一个干净的构建,得到了

Gradle构建在13s 397 ms内完成了5个错误

指出了两个XML文件,并且在它们两个中都有第一个元素前面的空格,并显示错误...

Xml声明应位于所有文档内容之前

所以我修复了这些并再次运行构建没有错误.

然后我运行Lint并发现另外8个带有错误的XML文件(NB,错误,而不是警告),说" 元素选择器没有必需的属性:layout_height ".这个错误显然是由于这些文件位于布局文件夹而不是drawable文件夹中,尽管为什么这不会导致Eclipse中出现问题尚不清楚.

我的问题:

  1. 为什么Gradle Build只检测到一些错误,但其他错误必须通过lint找到?
  2. 通过Gradle Build可以找到哪些类别的错误?
  3. 向Gradle Build脚本添加内容以查找所有错误有多难 ?

编辑:实际上对于常规Java文件也是如此 - 我将在Gradle构建中得到"0错误",然后我将进入调试器中的源文件并看到Lint中的4个错误.

Inv*_*rce 10

为什么Gradle Build只检测到一些错误,但其他错误必须通过lint找到?

Lint错误不是编译错误,而是代码问题,默认情况下AndroidStudio不会检查这些错误.(标准javac也一样).

通过Gradle Build可以找到哪些类别的错误?

Gradle将检测所有编译时错误,注释处理,打包错误,dex,签名,incorectly定义的xml,不正确的文件命名等.

向Gradle Build脚本添加内容以查找所有错误有多难?

事实上,令人惊讶的简单,来源

在编译应用程序级别build.gradle时添加lint检查

android {
   lintOptions {
       // set to true to turn off analysis progress reporting by lint
       quiet false
       // if true, stop the gradle build if errors are found
       abortOnError true
       // if true, only report errors
       ignoreWarnings false
       }
   ...
}
Run Code Online (Sandbox Code Playgroud)

如果这对U不起作用,请在每次制作后添加lint,为此,您可以按照此答案操作

我将补充说,此配置将检测所有已启用的检查,其严重性警告和错误位于:

File > Other Settings > Default Settings > Editor > Inspections 
Run Code Online (Sandbox Code Playgroud)

Android Studio将实时运行代码检查检查,因此所有lint warnigns/errors都会在编辑时显示在代码中,lint错误标记为红色下划线,并通过用黄色背景标记代码片段来发出警告.即使lint错误标记为与编译时错误相同,它们也不会默认停止生成.