Errore ": app: lintVitalRelease" durante la generazione di apk firmato


238

Ho provato a caricare il mio apk su Google Play e ho riscontrato un messaggio di errore: "Hai caricato un APK debuggable. Per motivi di sicurezza devi disabilitare il debug prima che possa essere pubblicato su Google Play. Ulteriori informazioni sugli APK debuggable".

Quindi ho scritto android:debuggable="false"nel mio manifest e riprovato. Ho riscontrato lo stesso errore, quindi ho impostato la versione build dal mio modulo per il rilascio e ho provato a generare nuovamente un apk, ma questa volta viene generato questo errore:

Error:Gradle: Execution failed for task ':app:lintVitalRelease'.
Lint found fatal errors while assembling a release target.
  To proceed, either fix the issues identified by lint, or modify your build script as follows:
  ...
  android {
      lintOptions {
          checkReleaseBuilds false
          // Or, if you prefer, you can continue to check for errors in release builds,
          // but continue the build even when errors are found:
          abortOnError false
      }
  }
  ...

38
Tutte le risposte sembrano essere o non verificare la presenza di errori o non interrompere gli errori, ma per quanto riguarda la ricerca del problema e la sua correzione ??? Android Studio non mostra informazioni su ciò che è sbagliato ... Qualcuno è stato in grado di risolvere questo problema senza ignorare gli errori?
— Federico Alvarez,

stackoverflow.com/questions/43203415/… vai a questa pagina dalla risposta. il suo lavoro per me
— Halim Bezek,

5
"ma per quanto riguarda la ricerca del problema e la sua correzione ???" Ho pensato lo stesso, ma ho sempre trascurato la scheda "Risultati ispezione" nella barra in basso e ho anche creato il contenuto della cartella \ report. Si prega di controllare.
— PravyNandas,

1
la cartella build / report è un ottimo consiglio. Per me il problema mancava di traduzioni ed era chiaro dal rapporto html.
— Pete,

sull'errore google ti dà la soluzione, perché non hai provato questo ???? all'inizio cerca di capire l'errore e anche il messaggio di errore
— Mafujul,

Risposte:


393

Non consiglierei di disattivare i controlli della lanugine, sono lì per un motivo. Invece, controlla qual è l'errore e correggilo.

Il rapporto errori viene salvato in [app module]/build/reports/lint-results-yourBuildName-fatal.html. È possibile aprire questo file in un browser per leggere gli errori.

Sarebbe bello se Gradle potesse rendere un po 'più chiaro dove viene generato il rapporto di errore.


8
D'accordo, è molto meglio correggere l'errore! È anche possibile generare il rapporto manualmente con gradlew linto tramite un IDE, vedere developer.android.com/studio/write/lint
— Anigif

3
si, giusta direzione. Inoltre, gli errori riportati in HTML sono stati ben descritti e gli errori sono stati risolti, quindi li ho corretti con facilità!
— CodeToLife,

6
sì, è molto fastidioso quando dice fix the issues identified by lintma in realtà non mostra quegli errori o il percorso da segnalare ...
— user25

7
Questa deve essere la risposta accettata. La disabilitazione di lanugine non è una buona soluzione.
— slhddn,

1
nel mio caso l'errore era MissingTranslation: Incomplete translation- domanda per Google: perché questo non viene mostrato in Android Studio ?? Si chiama a integrated development environmentper un motivo.
— Someone Somewhere,

187

Ho avuto questo problema e l'ho risolto aggiungendo:

lintOptions { 

    checkReleaseBuilds false

}

al mio build.gradlefile all'interno della android{ }sezione.       


Questo non ha altri effetti collaterali sull'applicazione, giusto?
— committedandroider

10
No, la disattivazione della lanugine non provocherà effetti collaterali sull'applicazione. Lint è uno strumento di analisi del codice e l'errore menzionato qui causato dall'impostazione della proprietà debuggable può essere visualizzato in dettaglio nel file "lint-results-release-fatal.html" nella cartella build / output.
— errore 1337

Ho avuto problemi ad aggiungere una sezione Android {} al mio file build.grade di livello superiore; così ho seguito altri consigli e l'ho aggiunto al mio file build.grade a livello dell'app, ovvero una cartella più in basso, dove era già presente la sezione Android.
— Martin Zaske,

13
Avvertenza: questo disabilita semplicemente i controlli dei filacci. Sarebbe meglio almeno dare un'occhiata agli errori prima di disabilitarli. Nel mio caso, riguardavano alcune stringhe mancanti per lingue specifiche. Premi "Analizza" -> "Controlla codice .."
— Markus

2
Non lo consiglio. Nel mio caso, ignorare questi avvisi causerebbe arresti anomali in fase di esecuzione causati da risorse mancanti. Esamina lint-results-release-fatal.html e risolvi tutti i problemi.
— Paweł Nadolski,

76

se vuoi scoprire l'errore esatto vai al seguente percorso nel tuo progetto: /app/build/reports/lint-results-release-fatal.html(o .xml). Il modo più semplice è se vai al file xml, ti mostrerà esattamente qual è l'errore includendo la sua posizione dell'errore nella tua classe java o nel file xml. Disattivare i controlli della lanugine non è una buona idea, sono lì per un motivo. Invece, vai a:

    /app/build/reports/lint-results-release-fatal.html or 
    /app/build/reports/lint-results-release-fatal.xml

e aggiustalo.


2
È molto meglio che ignorare gli errori e andare avanti. E il file HTML è così facile da capire il problema.
— John Pang,

ho trovato il problema in /app/build/reports/lint-results-release-fatal.xml. grazie
— Bukunmi

Salvavita. Problema risolto in letteralmente secondi, dopo aver visto il file xml.
— Roman Rozenshtein,

50

Assicurati di aver definito tutte le traduzioni in tutti i string.xmlfile


1
quello era il mio problema .... aggiungi traduzioni mancanti risolvi il problema grazie
— Hatem Badawi

Ha funzionato per me mancavano alcune traduzioni.
— Himanshu Rawat,

40

Nel caso in cui tu stia cercando di individuare dove si trova il problema, ho trovato il mio nel seguente percorso del mio progetto: /app/build/reports/lint-results-release-fatal.html (o .xml).

Spero che questo ti aiuti!


entrambi sono file sono vuoti per me.
— m9m9m,

35

Ho riscontrato lo stesso problema durante la creazione di apk firmato da Android Studio. Ho appena cambiato un po 'di modifiche sul file build.gradle all'interno di Android {}

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

Questo ha funzionato per me. Ho avuto un problema simile. Esecuzione non riuscita per l'attività ': app: lint *** Release'. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
— Nelson Ramirez,

24

Come trovare i dettagli dell'errore

Anylyze -> Ispeziona codice

inserisci qui la descrizione dell'immagine

Quindi nei risultati delle ispezioni verrà visualizzato un errore

inserisci qui la descrizione dell'immagine

Nel mio caso la compilazione non è riuscita a causa del riferimento javadoc irrisolto in Google IAP 😐


3
Questa dovrebbe essere la risposta accettata. Per tutte le persone che hanno suggerito di disabilitare il controllo della lanugine, è solo una soluzione. È ancora meglio correggere l'errore piuttosto che saltarlo. Saltare i controlli delle lanugine dovrebbe essere fatto solo in casi molto specifici e non sempre. DI NUOVO, CHE DOVREBBE ESSERE EFFETTUATO RARAMENTE O ANCHE PER NESSUNO.
— Archie G. Quiñones,

20
***Try this***

 buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            signingConfig signingConfigs.release
        }
    }

18

Puoi trovare maggiori informazioni scegliendo assemblare dalla scheda di creazione gradle:inserisci qui la descrizione dell'immagine


5
questa è la risposta effettiva, vai al montaggio in app, nella finestra di gradle ed eseguilo facendo doppio clic, Android Studio ti dirà esattamente cosa stava popolando.
— Wajid Ali,

1
Oh mio Dio ... grazie! Quello mi ha fatto risparmiare un sacco di tempo! : D
— thinklinux,

Ho ricevuto lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false }e l'ho aggiunto, ma ho riscontrato lo stesso errore ogni volta che creo una versione
— Oliver D,

11

Prova queste 3 righe nel tuo file app.gradle.

android {
lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

@justColbs potrebbe essere che stai affrontando un altro problema. Pubblica il tuo problema con log cat potrebbe essere qualcuno che ti guidi correttamente.
— Rehan Sarwar,

8

Il mio problema era una traduzione mancante. Avevo un settings.xml che non è stato tradotto in quanto non era necessario, quindi ho dovuto aggiungere "translatable =" false "alle stringhe:

Questa stringa non ha bisogno di traduzione


8

Ciao ragazzi questo ha funzionato per me, ho appena modificato i miei BuildTypes in questo modo:

buildTypes {
        release {
            android {
                lintOptions {
                    checkReleaseBuilds false
                    // Or, if you prefer, you can continue to check for errors in release builds,
                    // but continue the build even when errors are found:
                    abortOnError false
                }
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

7

Basta trovare il motivo dell'errore qui e risolverlo.

yourProject/app/build/reports/lint-results-release-fatal.xml

1
dovresti sapere quale errore esatto e ricertificare. grazie.
— Asesha George,

Ho trovato TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.nel mio registro, cioè non posso impostare targetSdkVersion25.
— Frutta

6

Il mio problema era una traduzione mancante. Avevo un settings.xml che non è stato tradotto in quanto non era necessario, quindi ho dovuto aggiungere "translatable =" false "alle stringhe:

<string translatable="false" name="stringname">This string doesn't need translation</string>

4

Come molte persone hanno suggerito, è sempre meglio provare a correggere l'errore dalla fonte. controlla il file generato da lint

/app/build/reports/lint-results-release-fatal.html

leggi il file e verrai guidato da dove proviene l'errore. Dai un'occhiata al mio: l'errore derivava da un vincolo di visualizzazione improprio.


4

Risolvi questo problema Usando questo nel file build.gradle (app) All'interno di Android principale {interno}

  buildTypes {
      //  crunchPngs false // or true   when png error
        release {
            lintOptions {
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

3

Prova sotto il codice

buildTypes {
    release {
        lintOptions {
            disable 'MissingTranslation'
            checkReleaseBuilds false
            abortOnError false
        }
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}

3

inserisci qui la descrizione dell'immagine

Aggiungi questo all'interno di Android {} build.gradle (Modulo: App)

lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

2

Windows -> riferimenti -> Android-> controllo errori lanugine.

un tick Esegui errore completo .......

inserisci qui la descrizione dell'immagine


1
Molto carina, ma da dove viene questa finestra per favore? Non sono riuscito a trovarlo in Android Studio ...
— Martin Zaske,

2

Vai a build.gradle (Modulo: app)

lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

1

Rimuovi completamente questa affermazione dal tuo manifest, Eclipse gestirà questa operazione al volo.


0

È necessario aggiungere il codice nel file di livello a livello di progetto per generare la sovrascrittura dell'apk sugli errori


0

Nel mio caso il problema era correlato al livello minimo di API target richiesto da Google Play. È stato fissato a meno di 26.

Il problema è scomparso quando ho impostato il livello API target minimo su 26.



-2

Se aggiungi app.gradle sotto Android {

lintOptions {

    quiet true
    abortOnError false
}

}

Avrà lavoro


Penso che sia meglio correggere lint ed errori, se possibile, invece di saltare il controllo
— Piero
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.