Ricerca…


Osservazioni

Lo strumento Lint controlla i file di origine del progetto Android per potenziali bug e miglioramenti di ottimizzazione per correttezza, sicurezza, prestazioni, usabilità, accessibilità e internazionalizzazione. È possibile eseguire Lint dalla riga di comando o da Android Studio.

Documentazione ufficiale:

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

Utilizzo degli strumenti: ignora nei file xml

Gli tools:ignore attributo tools:ignore possono essere utilizzati nei file xml per eliminare gli avvertimenti sui pelucchi.

MA ignorare gli avvertimenti sui pelucchi con questa tecnica è la maggior parte delle volte il modo sbagliato di procedere.

Un avvertimento sui pelucchi deve essere compreso e corretto ... può essere ignorato se e solo se si ha una piena comprensione del suo significato e un motivo valido per ignorarlo.

Ecco un caso d'uso in cui è legittimo ignorare un avvertimento relativo ai pelucchi:

  • Stai sviluppando un'applicazione di sistema (firmata con la chiave del produttore del dispositivo)
  • La tua app deve modificare la data del dispositivo (o qualsiasi altra azione protetta)

Quindi puoi farlo nel tuo manifest: (ad esempio richiedendo l'autorizzazione protetta e ignorando l'avviso del filtro perché sai che nel tuo caso l'autorizzazione sarà concessa)

<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"/>

Importazione di risorse senza errore "Deprecated"

Utilizzando l'API di Android 23 o superiore, molto spesso tale situazione può essere vista:

inserisci la descrizione dell'immagine qui

Questa situazione è causata dal cambiamento strutturale dell'API di Android per quanto riguarda il recupero delle risorse. Ora la funzione:

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

dovrebbe essere usato. Ma la libreria android.support.v4 ha un'altra soluzione.

Aggiungi la seguente dipendenza al file build.gradle:

com.android.support:support-v4:24.0.0

Quindi sono disponibili tutti i metodi dalla libreria di supporto:

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));

Inoltre è possibile utilizzare più metodi dalla libreria di supporto:

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

Configura LintOptions con gradle

Puoi configurare lint aggiungendo una sezione lintOptions nel file 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
    }
}

È possibile eseguire lanci per una variante specifica (vedere sotto), ad es. / ./gradlew lintRelease , o per tutte le varianti ( ./gradlew lint ), nel qual caso produce un report che descrive a quali varianti specifiche si applica un determinato problema.

Controlla qui il riferimento DSL per tutte le opzioni disponibili .

Come configurare il file lint.xml

È possibile specificare le preferenze di controllo Lint nel file lint.xml . Se stai creando questo file manualmente, inseriscilo nella directory principale del tuo progetto Android. Se stai configurando le preferenze di Lint in Android Studio, il file lint.xml viene automaticamente creato e aggiunto al tuo progetto Android per te.

Esempio:

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

Impostando il valore dell'attributo di severità nel tag, è possibile disabilitare il controllo dei rifiuti per un problema o modificare il livello di gravità per un problema.

L'esempio seguente mostra il contenuto di un file 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>

Configurazione del controllo del lint nei file di origine Java e XML

È possibile disabilitare il controllo dei pelucchi dai file di origine Java e XML.

Configurazione del controllo dei pelucchi in Java

Per disabilitare il controllo di Lint in modo specifico per una classe o un metodo Java nel tuo progetto Android, aggiungi l' annotazione @SuppressLint a quel codice Java.

Esempio:

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

Per disabilitare il controllo di tutti i problemi Lint:

@SuppressLint("all")

Configurazione del controllo del lint in XML

È possibile utilizzare gli tools:ignore attributo per disabilitare il controllo dei rifiuti per sezioni specifiche dei file XML .

Per esempio:

tools:ignore="NewApi,StringFormatInvalid"

Per sopprimere il controllo di tutti i problemi di Lint nell'elemento XML, utilizzare

tools:ignore="all"

Mark Sopprimere gli avvertimenti

È buona norma contrassegnare alcuni avvisi nel codice. Ad esempio, alcuni metodi deprecati sono necessari per il test o la vecchia versione di supporto. Ma il controllo dei lanci contrassegnerà quel codice con degli avvertimenti. Per evitare questo problema, è necessario utilizzare l'annotazione @SuppressWarnings.

Ad esempio, aggiungi ignorando gli avvisi ai metodi deprecati. È necessario inserire la descrizione degli avvertimenti nell'annotazione anche:

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

Usando questa annotazione puoi ignorare tutti gli avvisi, inclusi Lint, Android e altri. L'uso di Ometti avvisi aiuta a capire il codice correttamente!



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow