2017-08-31 2 views
1

ich dies in meinem build.gradle haben:Android Studio lint_baseline.xml schließt nicht viele Probleme, die es sollte

android { 
    lintOptions { 
    abortOnError false 
    absolutePaths false 
    lintConfig file('lint.xml') 
    baseline file('lint-baseline.xml') 
    } 
} 

Und ich habe Analyze > Inspect Code laufen vorher diese Basislinie zu etablieren. Ich habe auch bestätigt, dass diese Datei tatsächlich existiert und mit zu ignorierenden Problemen gefüllt ist.

Allerdings habe ich immer noch viele Warnungen angezeigt, wenn ich Analyze > Inspect Code ausführen. Es scheint, dass die Probleme, die basierend auf der Basislinie nicht ausgeschlossen werden, diejenigen sind, die nicht unter lint --list/die aufgelisteten here aufgeführt sind.

Dazu gehören ‚Nicht verwendete Erklärung‘, ‚Feld kann lokal sein‘ usw.

Gibt es eine Möglichkeit diese auch, um herauszufiltern? Warum überprüft die Codeüberprüfung auf Warnungen/Fehler, die nicht als Probleme aufgelistet sind?

Antwort

2

Von Android Studio Inspektionen:

Lint kann mit einem "Baseline" konfiguriert werden; eine Reihe von aktuellen Problemen, die in einer Codebasis gefunden wurden und die zukünftige Runs von Flusen ignoriert. Nur neue Probleme, die nicht in der Baseline gefunden wurden, werden gemeldet.

Beachten Sie, dass beim Öffnen von Dateien in der IDE die Baseline-Probleme nicht herausgefiltert werden; Der Zweck von Baselines besteht darin, dass Sie beginnen können, lint zu verwenden und den Build für alle neu eingeführten Fehler zu unterbrechen, ohne die gesamte Codebase im Voraus korrigieren zu müssen. Wenn Sie jedoch vorhandene Dateien öffnen, möchten Sie immer noch auf sie aufmerksam werden und Probleme beheben, wenn Sie auf sie stoßen.

Dieser Fehlertyp wird verwendet, um zwei Arten von Informationsnachrichten in Berichten auszugeben: Erstens, ob Probleme herausgefiltert wurden, sodass Sie kein falsches Sicherheitsgefühl haben, wenn Sie vergessen haben, eine Baseline-Datei eingecheckt zu haben und zweitens, ob Probleme in der Baseline-Datei behoben wurden, so dass Sie sie nicht mehr filtern können und gewarnt werden, wenn die Probleme erneut auftreten.

Ich fragte mich gerade das Gleiche. Vielleicht hilft das, Dinge zu erklären.

Die Baseline-Funktion soll Linting-Fehler in der Konsole ausblenden und so machen, dass neue Warnungen/Fehler den Build zu brechen. Leider unterdrückt dies Android Studio-Inspektionen nicht. richtig

enter image description here

+0

Wenn ich Sie verstehen, sind Sie darüber reden, wie die Flusen Grundlinie die Probleme nicht unterdrücken, wenn ich eine Datei in der IDE sehen, nicht wahr? Wenn das der Fall ist, ist das nicht genau das, worüber ich spreche. Stattdessen sehe ich die tatsächliche Inspektion mit Lint-Problemen, wenn die Code-Inspektion sofort nach der Einstellung der Basislinie ohne Code-Änderungen ausgeführt wird. Für mich scheint dies den ganzen Zweck der Festlegung einer Basislinie zu besiegen. –

+0

Okay, also ja und nein. Die Baseline betrifft NUR die CLI-Tool-/Gradle-Task. Führen Sie die Task "Flusen" in Ihrem Modul aus. Wenn es korrekt eingerichtet ist, verwendet es die Baseline und meldet keinen Fehler/keine Warnung, mit der Ausnahme, dass Sie einfach wissen, dass es eine Baseline verwendet. Wenn ich es über die Task "Gradle" ausführe, funktioniert es wie erwartet, aber nur für das CLI-Tool, nicht für "Analyse> Code überprüfen". Zusammenfassend kann die Baseline nichts in der IDE beeinflussen: Inline-Inspektionen für eine geöffnete Datei und das Fenster "Analyze> Inspect Code".Es kann Warnungen/Fehler unterdrücken, wenn es nur vom CLI-Tool/Gradle ausgeführt wird –

Verwandte Themen