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
      }
  }
  ...
user3716366
la source
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é.

Graydyn Young
la source
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.       

naile
la source
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.

Josi
la source
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

Roberto
la source
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!

Pecolyte Wang
la source
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
    }
Dhruv Raval
la source
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 😐

Mikhail
la source
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
        }
    }
Amit raj
la source
18

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

Mateusz Kaflowski
la source
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
}
Rehan Sarwar
la source
@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

Harsh Masand
la source
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'
        }
    }
DoctorDroid Haïti
la source
7

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

yourProject/app/build/reports/lint-results-release-fatal.xml
Amir Hossein Ghasemi
la source
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>
tomDev
la source
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.

Quwaysim
la source
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'
        }
    }
Keshav Gera
la source
3

Essayez le code ci-dessous

buildTypes {
    release {
        lintOptions {
            disable 'MissingTranslation'
            checkReleaseBuilds false
            abortOnError false
        }
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}
Cheikh Ahmed Qureshi
la source
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
}
Panneerchelvam Piratheepan
la source
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

Quelqu'un
la source
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
}
Kaiffi
la source
1

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

Eran Goldin
la source
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

Kamal
la source
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.

mdicosimo
la source
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é

Josi
la source
-2

Si vous ajoutez dans app.gradle sous android {

lintOptions {

    quiet true
    abortOnError false
}

}

Ça va avoir du travail

Alpesh Sorathiya
la source
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