Erreur «: app: lintVitalRelease» lors de la génération de l'apk signé


238

J'ai essayé de télécharger mon apk sur google play et j'ai rencontré un message d'erreur: "Vous avez téléchargé un APK débogable. Pour des raisons de sécurité, vous devez désactiver le débogage avant qu'il puisse être publié sur Google Play. En savoir plus sur les APK déboggables."

Ensuite, j'ai écrit android:debuggable="false"dans mon manifeste et j'ai réessayé. J'ai rencontré la même erreur, j'ai donc mis la variante de construction de mon module à libérer et j'ai essayé de générer à nouveau un apk, mais cette fois, cette erreur est générée:

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
Toutes les réponses semblent être soit de ne pas vérifier les erreurs ou de ne pas abandonner les erreurs, mais qu'en est-il de trouver le problème et de le corriger ??? Android Studio n'affiche aucune information sur ce qui ne va pas ... Quelqu'un a pu résoudre ce problème sans ignorer les erreurs?
Federico Alvarez

stackoverflow.com/questions/43203415/… allez sur cette page en réponse. son travail pour moi
Halim Bezek

5
"mais que diriez-vous de trouver le problème et de le corriger ???" J'ai pensé la même chose, mais j'ai toujours ignoré l'onglet «Résultats d'inspection» dans la barre inférieure et également le contenu du dossier build \ report. Vérifiez s'il vous plaît.
PravyNandas

1
le dossier build / report est un très bon conseil. Pour moi, le problème manquait des traductions, et il ressortait clairement du rapport html.
Pete

sur l'erreur google vous donne la solution, pourquoi n'avez-vous pas essayé cela ???? essayez d'abord de comprendre l'erreur ainsi que le message d'erreur
Mafujul

Réponses:


393

Je ne recommanderais pas de désactiver les contrôles de peluches, ils sont là pour une raison. Au lieu de cela, vérifiez quelle est l'erreur et corrigez-la.

Le rapport d'erreur est enregistré dans [app module]/build/reports/lint-results-yourBuildName-fatal.html. Vous pouvez ouvrir ce fichier dans un navigateur pour en savoir plus sur les erreurs.

Ce serait bien si Gradle pouvait clarifier un peu plus où le rapport d'erreur est généré.


8
D'accord, il vaut mieux corriger l'erreur! Il est également possible de générer le rapport manuellement avec gradlew lintou via un IDE, voir developer.android.com/studio/write/lint
Anigif

3
oui, bonne direction. De plus, le rapport d'erreurs dans ce html était bien décrit et les erreurs étaient corrigées, donc je les ai juste corrigées facilement!
CodeToLife

6
oui c'est très ennuyeux quand il dit fix the issues identified by lintmais ne montre pas vraiment ces erreurs ou chemin à signaler ...
user25

7
Ce doit être la réponse acceptée. La désactivation des peluches n'est pas une bonne solution.
slhddn

1
dans mon cas, l'erreur était MissingTranslation: Incomplete translation- question pour Google: pourquoi cela ne s'affiche-t-il pas dans Android Studio ?? Cela s'appelle un integrated development environmentpour une raison.
Quelqu'un Quelque part

187

J'ai eu ce problème et je l'ai résolu en ajoutant:

lintOptions { 

    checkReleaseBuilds false

}

à mon build.gradlefichier dans la android{ }section.       


Cela n'a pas d'autres effets secondaires sur l'application, non?
committedandroider

10
Non, la désactivation des peluches ne provoquera aucun effet secondaire sur l'application. Lint est un outil d'analyse de code et l'erreur mentionnée ici causée par la définition de la propriété debuggable peut être consultée en détail dans le fichier "lint-results-release-fatal.html" du dossier build / outputs.
error1337

J'ai eu du mal à ajouter une section Android {} à mon fichier build.grade de niveau supérieur; J'ai donc suivi quelques autres conseils et l'ai ajouté à mon fichier build.grade au niveau de l'application, c'est-à-dire un dossier plus bas, où la section Android était déjà présente.
Martin Zaske

13
Avertissement: cela désactive simplement les vérifications de peluches. Il serait préférable de jeter un œil aux erreurs avant de les désactiver. Dans mon cas, il s'agissait de chaînes manquantes pour des langues spécifiques. Appuyez sur "Analyser" -> "Inspectez le code .."
Markus

2
Je ne le recommande pas. Dans mon cas, ignorer ces avertissements entraînerait des plantages au moment de l'exécution causés par des ressources manquantes. Veuillez consulter lint-results-release-fatal.html et corriger tous les problèmes.
Paweł Nadolski

76

si vous souhaitez découvrir l'erreur exacte, accédez au chemin suivant dans votre projet: /app/build/reports/lint-results-release-fatal.html(or .xml). Le moyen le plus simple est de consulter le fichier xml, il vous montrera exactement quelle est l'erreur, y compris sa position dans la classe java ou le fichier xml. Désactiver les contrôles de peluches n'est pas une bonne idée, ils sont là pour une raison. Allez plutôt à:

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

et le réparer.


2
C'est bien mieux que de simplement ignorer les erreurs et passer à autre chose. Et le fichier HTML est si facile à comprendre le problème.
John Pang

j'ai trouvé le problème dans /app/build/reports/lint-results-release-fatal.xml. merci
Bukunmi

Épargnant de vie. Problème résolu en quelques secondes, après avoir regardé le fichier xml.
Roman Rozenshtein

50

Assurez-vous d'avoir défini toutes les traductions dans tous les string.xmlfichiers


1
c'était mon problème .... ajouter des traductions manquantes résoudre le problème merci
Hatem Badawi

A travaillé pour moi, certaines traductions manquaient.
Himanshu Rawat

40

Dans le cas où vous essayez de localiser le problème, j'ai trouvé le mien dans le chemin suivant de mon projet: /app/build/reports/lint-results-release-fatal.html (ou .xml).

J'espère que cela t'aides!


les deux sont des fichiers vides pour moi.
m9m9m

35

J'ai rencontré le même problème lors de la création d'une apk signée à partir d'un studio Android. Je change juste un petit changement sur le fichier build.gradle dans Android {}

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

Cela a fonctionné pour moi. J'ai eu un problème similaire. L'exécution a échoué pour la tâche ': app: lint *** Release'. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
Nelson Ramirez

24

Comment trouver les détails de l'erreur

Anylyze -> Inspecter le code

entrez la description de l'image ici

Ensuite, dans les résultats de l'inspection, vous verrez une erreur

entrez la description de l'image ici

Dans mon cas, la construction a échoué en raison d'une référence javadoc non résolue dans Google IAP 😐


3
Ce devrait être la réponse acceptée. Pour toutes les personnes qui ont suggéré de désactiver la vérification des peluches, ce n'est qu'un travail. Il est toujours préférable de corriger l'erreur plutôt que de la sauter. Ignorer les vérifications de peluches ne doit être effectué que dans des cas très spécifiques et pas tout le temps. ENCORE, CELA DOIT ÊTRE FAIT RAREMENT OU MÊME PAS DU TOUT.
Archie G. Quiñones

20
***Try this***

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

18

Vous pouvez trouver plus d'informations sur l'assemblage dans l'onglet de construction gradle:entrez la description de l'image ici


5
c'est la réponse réelle, allez dans l'assemblage dans l'application, dans la fenêtre de gradle et exécutez-le en double-cliquant, le studio Android vous dira exactement ce qu'il faisait.
Wajid Ali

1
Oh mon dieu ... merci! Celui-là m'a fait gagner beaucoup de temps! : D
thinklinux

Je l'ai, 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 }et je l'ai ajouté, mais j'ai la même erreur à chaque fois que je crée une version
Oliver D

11

Essayez ces 3 lignes dans votre fichier 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 pourrait être vous face à un autre problème. Publier votre problème avec log cat peut vous guider correctement.
Rehan Sarwar

8

Mon problème était une traduction manquante. J'avais un settings.xml qui n'était pas traduit car il n'était pas nécessaire, j'ai donc dû ajouter "translatable =" false "aux chaînes:

Cette chaîne n'a pas besoin de traduction


8

Bonjour les gars, cela a fonctionné pour moi, je modifie juste mes BuildTypes comme ceci:

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

Trouvez simplement la raison de l'erreur ici et corrigez-la.

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

1
vous devez savoir quelle erreur exacte et recertifier. Merci.
Asesha George

J'ai trouvé TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.dans mon journal, c'est-à-dire que je ne peux pas en mettre targetSdkVersion25.
Fruit

6

Mon problème était une traduction manquante. J'avais un settings.xml qui n'était pas traduit car il n'était pas nécessaire, j'ai donc dû ajouter "translatable =" false "aux chaînes:

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

4

Comme beaucoup de gens l'ont suggéré, il est toujours préférable d'essayer de corriger l'erreur à partir de la source. vérifier le fichier généré par les peluches

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

lisez le fichier et vous serez guidé vers l'origine de l'erreur. Découvrez le mien: l'erreur est venue d'une contrainte de vue incorrecte.


4

Résoudre ce problème Utilisation de ce fichier dans build.gradle (app) File Inside main Android {inside}

  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

Essayez le code ci-dessous

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

3

entrez la description de l'image ici

Ajoutez ceci dans android {} build.gradle (Module: 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 -> références -> Android-> vérification des erreurs de peluches.

un tick Exécuter l'erreur complète .......

entrez la description de l'image ici


1
Très joli, mais d'où vient cette fenêtre s'il vous plaît? Je ne pouvais pas le trouver dans Android Studio ...
Martin Zaske

2

Allez sur build.gradle (Module: 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

Supprimez complètement cette déclaration de votre manifeste, Eclipse s'en occupera à la volée.


0

Vous devez ajouter le code dans le fichier Gradle au niveau du projet pour générer l'écrasement d'apk sur les erreurs


0

Dans mon cas, le problème était lié au niveau d'API cible minimal requis par Google Play. Il a été fixé à moins de 26.

Le problème a disparu lorsque j'ai défini le niveau d'API cible minimum à 26.


0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

Le code ci-dessus peut résoudre le problème en l'ignorant, mais il peut également entraîner le blocage de l'application.

La bonne réponse se trouve dans le lien suivant:

Erreur lors de la génération de l'apk signé


-2

Si vous ajoutez dans app.gradle sous android {

lintOptions {

    quiet true
    abortOnError false
}

}

Ça va avoir du travail


Je pense qu'il est préférable de corriger les peluches et les erreurs, si possible, au lieu de sauter le chèque
Piero
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.