2016-03-30 11 views
6

Vor einiger Zeit habe ich versucht, Flusen zu meinem Android Studio Projekt hinzufügen, indem Sie eine lint.xml Datei auf dem App-Modul hinzugefügt und die folgenden lintOptions:Flusen nicht versagt baut

lintOptions { 
    abortOnError true 
    checkReleaseBuilds true 
    lintConfig file("lint.xml") 
} 

Alles funktionierte gut, Debugbuilds scheiterten, wenn es Flusenfehler gab und ansonsten passierte. Ich habe die Änderungen jedoch nicht in das Projekt integriert und bin kürzlich zu diesen Änderungen zurückgekehrt, um festzustellen, dass Builds nicht mehr auf Flusenfehlern leiden. Ich kann nicht finden, dass die Änderungen in dem Projekt während dieser Zeit, die dies verursacht haben. In Release-Builds treten weiterhin Flusenfehler wie erwartet auf.

von dem, was ich die Flusen Aufgabe sammeln sollte standardmäßig laufen, aber ich es als Teil der Aufgaben bin nicht laufen zu sehen, wenn ich

zusätzliche Informationen aufzubauen, die helfen können:

  • i ist der gradle Wrapper mit distributionUrl = https: //services.gradle.org/distributions/gradle-2.10-all.zip
  • i baue durch android-Studios gebaut -> Projekt neu und
    nicht die grüne Play-Taste (Ich weiß, das wird nicht ru n Flusen)
  • die 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>

+0

können Sie auf die Frage hinzufügen die lint.xml Datei? könnte sein, dass du Rulles hinzufügst, die alles dazu bringen, Flusen zu passieren .... –

Antwort

3

Gefunden eine Lösung auf Run lint when building android studio projects. im Grunde machen Sie die Aufgabe, auf der die Flusen Aufgabe abhängen montieren sie zu zwingen, laufen:

applicationVariants.all { variant -> 
variant.outputs.each { output -> 
    def lintTask = tasks["lint${variant.name.capitalize()}"] 
    output.assemble.dependsOn lintTask 
} 

}

Für Bibliotheksprojekte -

libraryVariants.all { variant -> 
    variant.outputs.each { output -> 
     def lintTask = tasks["lint${variant.name.capitalize()}"] 
     tasks["bundle${variant.name.capitalize()}"].dependsOn lintTask 
    } 
}