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.