Какие ошибки обнаруживаются в «сборке» в Android Studio – роль Gradle

Я перехожу из Eclipse в Android Studio, и я нахожу, что меня все еще путают в отношении различных компонентов Android Studio относительно обнаружения ошибок. У меня есть проект с примерно 20 файлами Java и 30 файлами XML. Недавно я провел чистую и сборку и получил

Gradle build завершено с 5 ошибками в 13 с 397 мс

Было указано два файла XML, и в обоих из них было пустое пространство перед первым элементом с сообщением об ошибке …

Объявление Xml должно предшествовать всему содержимому документа

Поэтому я исправил их и снова запустил сборку без ошибок.

Затем я запустил Lint и обнаружил еще 8 файлов XML с ошибками (NB, ошибки, а не предупреждения), говоря: « Селектор элементов не имеет обязательного атрибута: layout_height ». Эта ошибка, по-видимому, связана с тем, что эти файлы находятся в папке макета, а не в папке с возможностью переноса, хотя почему это не вызвало проблем в Eclipse, неясно.

Мои вопросы :

  1. Почему Gradle Build обнаруживает только некоторые ошибки, но другие могут быть найдены через lint?
  2. Какие категории ошибок будут найдены через Gradle Build?
  3. Как трудно добавить что-то в сценарий Gradle Build, чтобы найти все ошибки?

Правка: на самом деле это также верно для обычных файлов Java – я получу «0 ошибок» в сборке Gradle, а затем перейду в исходный файл в отладчике и увижу 4 ошибки из Lint.

Почему Gradle Build обнаруживает только некоторые ошибки, но другие могут быть найдены через lint?

Ошибки Lint – это не ошибки компиляции, а проблемы с кодом, и по умолчанию AndroidStudio не проверяет их. (То же самое касается стандартного javac).

Какие категории ошибок будут найдены через Gradle Build?

Gradle обнаружит все ошибки времени компиляции, обработку аннотаций, ошибки упаковки, dex, подпись, неинтерактивно определенный xml, неправильное имя файла и т. Д.

Как трудно добавить что-то в сценарий Gradle Build, чтобы найти все ошибки?

Удивительно просто, источник

Чтобы включить проверки lint при компиляции, добавьте на уровне приложения build.gradle

 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 } ... } 

Если это не будет работать для U, добавьте lint после каждого make, чтобы сделать это, вы можете следовать этому ответу

Я добавлю, что эта конфигурация обнаружит все включенные проверки с предупреждением о серьезности и ошибкой в:

 File > Other Settings > Default Settings > Editor > Inspections 

Android Studio будет запускать проверки проверки кода в реальном времени, так что все символы / ошибки lint отображаются во время редактирования, ошибки lint отмечены красным подчеркиванием и предупреждения, маркируя фрагмент кода желтым фоном. Даже если ошибки lint отмечены такими же, как ошибки времени компиляции, они не перестанут строить по умолчанию.

Intereting Posts