前段时间,我尝试通过在应用程序模块添加一个lint.xml文件并添加以下lintOptions来将lint添加到我的Android Studio项目中:
lintOptions {
abortOnError true
checkReleaseBuilds true
lintConfig file("lint.xml")
}
一切运行良好,lint错误会导致调试版本构建失败。但我没有将这些更改纳入项目中,最近回到这些更改时发现构建不再因lint错误而失败。我无法找到在那段时间内导致此问题的项目更改。与预期一样,发布版本构建仍然因为lint错误而失败。
据我的了解,lint任务应默认运行,但我在构建时未看到它作为任务的一部分。
以下是一些可能有助于解决问题的其他信息:
- 我正在使用gradle wrapper,distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip。 - 我通过Android Studio的“Build -> Rebuild Project”进行构建,而不是绿色的播放按钮(我知道这不会运行lint)。 - lint.xml:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<!--The given layout_param is not defined for the given layout, meaning it has no
effect.-->
<issue id="ObsoleteLayoutParam" severity="error" />
<!--A layout that has no children or no background can often be removed-->
<issue id="UselessLeaf" severity="error" />
<issue id="HardcodedText" severity="error" />
<issue id="UnusedResources" severity="error" />
<!--AdapterViews such as ListViews must be configured with data from Java code,
such as a ListAdapter.-->
<issue id="AdapterViewChildren" severity="error" />
<!--Missing commit() on SharedPreference editor-->
<issue id="CommitPrefEdits" severity="error" />
<!--looks for cases where you have cut & pasted calls to
findViewById but have forgotten to update the R.id field-->
<issue id="CutPasteId" severity="error" />
<!--Calling String#toLowerCase() or #toUpperCase() without specifying an explicit
locale is a common source of bugs.-->
<issue id="DefaultLocale" severity="error" />
<!--Implied locale in date format-->
<issue id="SimpleDateFormat" severity="error" />
<!--Incorrect order of elements in manifest-->
<issue id="ManifestOrder" severity="error" />
<!--Using STRING instead of TEXT-->
<issue id="SQLiteString" severity="error" />
<!--Memory allocations within drawing code-->
<issue id="DrawAllocation" severity="error" />
<!--Handler is declared as an inner class, it may prevent the outer
class from being garbage collected.-->
<issue id="HandlerLeak" severity="error" />
<!--Ellipsis string can be replaced with ellipsis character-->
<issue id="TypographyEllipsis" severity="error" />
<!--ScrollViews can have only one child-->
<issue id="ScrollViewCount" severity="error" />
<!--FragmentTransaction, you typically need to commit it as well-->
<issue id="CommitTransaction" severity="error" />
<!--A scrolling widget such as a ScrollView should not contain any nested
scrolling widgets since this has various usability issues-->
<issue id="NestedScrolling" severity="error" />
<!--ScrollView children must set their layout_width or layout_height attributes to
wrap_content-->
<issue id="ScrollViewSize" severity="error" />
<!--Using Wrong AppCompat Method-->
<issue id="AppCompatMethod" severity="error" />
<!--Some methods have no side effects, an calling them without doing something
without the result is suspicious.-->
<issue id="CheckResult" severity="error" />
<!--Duplicate ids across layouts combined with include tags-->
<issue id="DuplicateIncludedIds" severity="error" />
<!--This check ensures that a layout resource which is defined in multiple
resource folders, specifies the same set of widgets.-->
<issue id="InconsistentLayout" severity="error" />
<!--Wrong locale name-->
<issue id="LocaleFolder" severity="error" />
<!--Target SDK attribute is not targeting latest version-->
<issue id="OldTargetApi" severity="error" />
<!--Frequent alarms are bad for battery life.-->
<issue id="ShortAlarm" severity="error" />
<!--Using system app permission-->
<issue id="ProtectedPermissions" severity="ignore" />
<!--Package not included in Android-->
<issue id="InvalidPackage" severity="ignore" />
</lint>