Suche…


Bemerkungen

Das Lint-Tool überprüft die Quelldateien Ihres Android-Projekts auf potenzielle Fehler und Optimierungsverbesserungen auf Korrektheit, Sicherheit, Leistung, Benutzerfreundlichkeit, Zugänglichkeit und Internationalisierung. Sie können Lint über die Befehlszeile oder über Android Studio ausführen.

Offizielle Dokumentation:

https://developer.android.com/studio/write/lint.html

Verwenden von Tools: In XML-Dateien ignorieren

Die Attributtools tools:ignore können in XML-Dateien verwendet werden, um Flusenwarnungen zu löschen.

ABER das Entfernen von Fusselwarnungen mit dieser Technik ist meistens der falsche Weg.

Eine Fusselwarnung muss verstanden und behoben werden. Sie kann nur dann ignoriert werden, wenn Sie deren Bedeutung vollständig verstanden haben und einen guten Grund haben, sie zu ignorieren.

Hier ist ein Anwendungsfall, in dem es legitim ist, eine Fusselwarnung zu ignorieren:

  • Sie entwickeln eine System-App (signiert mit dem Geräteherstellerschlüssel)
  • Ihre App muss das Gerätedatum (oder eine andere geschützte Aktion) ändern.

Dann können Sie dies in Ihrem Manifest tun: (dh die geschützte Berechtigung wird angefordert und die Fusselwarnung wird ignoriert, weil Sie wissen, dass in Ihrem Fall die Berechtigung erteilt wird).

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      ...>
    <uses-permission android:name="android.permission.SET_TIME"
        tools:ignore="ProtectedPermissions"/>

Importieren von Ressourcen ohne Fehler "Veraltet"

Bei Verwendung der Android-API 23 oder höher ist eine solche Situation häufig zu sehen:

Geben Sie hier die Bildbeschreibung ein

Diese Situation wird durch die strukturelle Änderung der Android-API in Bezug auf das Abrufen der Ressourcen verursacht. Nun die Funktion:

public int getColor(@ColorRes int id, @Nullable Theme theme) throws NotFoundException    

sollte benutzt werden. Die android.support.v4-Bibliothek hat jedoch eine andere Lösung.

Fügen Sie der Datei build.gradle die folgende Abhängigkeit hinzu:

com.android.support:support-v4:24.0.0

Dann stehen alle Methoden aus der Support Library zur Verfügung:

ContextCompat.getColor(context, R.color.colorPrimaryDark);
ContextCompat.getDrawable(context, R.drawable.btn_check);
ContextCompat.getColorStateList(context, R.color.colorPrimary);
DrawableCompat.setTint(drawable);
ContextCompat.getColor(context,R.color.colorPrimaryDark));

Darüber hinaus können weitere Methoden aus der Support-Bibliothek verwendet werden:

ViewCompat.setElevation(textView, 1F);
ViewCompat.animate(textView);
TextViewCompat.setTextAppearance(textView, R.style.AppThemeTextStyle);
...

Konfigurieren Sie LintOptions mit Gradle

Sie können Flusen konfigurieren, indem lintOptions in der Datei lintOptions Abschnitt build.gradle :

android {

    //.....

    lintOptions {
        // turn off checking the given issue id's
        disable 'TypographyFractions','TypographyQuotes'

        // turn on the given issue id's
        enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'

        // check *only* the given issue id's
        check 'NewApi', 'InlinedApi'

       // set to true to turn off analysis progress reporting by lint
       quiet true
 
       // if true, stop the gradle build if errors are found
       abortOnError false
   
       // if true, only report errors
       ignoreWarnings true
    }
}

Sie können Flusen für eine bestimmte Variante (siehe unten) ./gradlew lintRelease , z. B. ./gradlew lintRelease , oder für alle Varianten ( ./gradlew lint ). In diesem Fall wird ein Bericht erstellt, in dem beschrieben wird, für welche bestimmten Varianten ein bestimmtes Problem gilt.

Hier finden Sie die DSL-Referenz für alle verfügbaren Optionen .

So konfigurieren Sie die Datei lint.xml

In der Datei lint.xml können Sie Ihre Voreinstellungen für die Lint-Prüfung lint.xml . Wenn Sie diese Datei manuell erstellen, platzieren Sie sie im Stammverzeichnis Ihres Android-Projekts. Wenn Sie die Lint-Einstellungen in Android Studio konfigurieren, wird die Datei lint.xml automatisch erstellt und Ihrem Android-Projekt für Sie hinzugefügt.

Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
    <lint>
        <!-- list of issues to configure -->
</lint>

Durch Festlegen des Attributs für den Schweregrad im Tag können Sie die Lint-Prüfung für ein Problem deaktivieren oder den Schweregrad für ein Problem ändern.

Das folgende Beispiel zeigt den Inhalt einer Datei lint.xml .

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the given check in this project -->
    <issue id="IconMissingDensityFolder" severity="ignore" />

    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
    <issue id="ObsoleteLayoutParam">
        <ignore path="res/layout/activation.xml" />
        <ignore path="res/layout-xlarge/activation.xml" />
    </issue>

    <!-- Ignore the UselessLeaf issue in the specified file -->
    <issue id="UselessLeaf">
        <ignore path="res/layout/main.xml" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

Konfigurieren der Fusselprüfung in Java- und XML-Quelldateien

Sie können die Lint-Prüfung in Ihren Java- und XML-Quelldateien deaktivieren.

Fusselprüfung in Java konfigurieren

Um die Lint-Überprüfung speziell für eine Java-Klasse oder -Methode in Ihrem Android-Projekt zu deaktivieren, fügen @SuppressLint diesem Java-Code die Annotation @SuppressLint .

Beispiel:

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

So deaktivieren Sie die Überprüfung für alle Lint-Probleme:

@SuppressLint("all")

Konfigurieren der Fusselprüfung in XML

Sie können das tools:ignore Attribut verwenden, um die Lint-Prüfung für bestimmte Abschnitte Ihrer XML-Dateien zu deaktivieren.

Zum Beispiel:

tools:ignore="NewApi,StringFormatInvalid"

Verwenden Sie, um die Überprüfung auf alle Lint-Probleme im XML-Element zu unterdrücken

tools:ignore="all"

Mark Unterdrückung von Warnungen

Es empfiehlt sich, einige Warnungen in Ihrem Code zu markieren. Beispielsweise sind einige veraltete Methoden für Ihre Tests oder die alte Supportversion erforderlich. Bei der Flusenüberprüfung wird der Code jedoch mit Warnungen markiert. Um dieses Problem zu vermeiden, müssen Sie die Annotation @SuppressWarnings verwenden.

Fügen Sie zum Beispiel Ignorieren zu Warnungen zu veralteten Methoden hinzu. Sie müssen auch die Beschreibung der Warnungen in die Anmerkung einfügen:

@SuppressWarnings("deprecated");
public void setAnotherColor (int newColor) {
    getApplicationContext().getResources().getColor(newColor)
}

Mit dieser Anmerkung können Sie alle Warnungen, einschließlich Lint, Android und andere, ignorieren. Die Verwendung von Unterdrückungswarnungen hilft, Code richtig zu verstehen!



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow