J'ai mis à jour mon studio Android de 3.5.x à 3.6 aujourd'hui et j'obtiens une erreur lors de la génération d'apk signé pour la variante de construction affichant le message suivant - Le nom de l'entrée 'res / layout / test_toolbar.xml' est entré en collision Je n'ai aucune mise en page nommée comme ceci un dans tout le projet du tout. J'ai une variante de construction personnalisée nommée " stage " et chaque fois que j'essaie de créer un apk signé, cela échoue toujours. Je compte trouver encore une solution. Veuillez m'aider avec ce problème. Merci
Mise à jour: Le même problème peut également se produire avec les messages suivants (comme je l'ai trouvé dans AS - 3.6.1 ). Ne vous inquiétez donc pas de ce genre de messages inconnus et non résolubles. Jusqu'à présent, j'ai trouvé deux nouveaux types de messages en générant un apk signé:
Entry name 'kotlin/collections/MapWithDefault.kotlin_metadata' collided
Access Denied
La solution est la même. Parfois, vous devrez peut-être Invalidate Cache and Restart
votre AS pour cela. Faites-moi savoir vos découvertes. Merci
18 Réponses :
J'ai supprimé les sorties de construction précédentes pour la variante de construction, y compris le fichier APK. C'est ce qui m'a aidé
J'ai essayé de supprimer le répertoire de build
dans son ensemble, j'ai toujours le même problème. Pouvez-vous expliquer ce que vous avez fait dans son intégralité?
Supprimez-vous également le répertoire de construction à la racine du projet et le répertoire app / build? Dans mon projet, le chemin de sortie d'apk est modifié et je supprime simplement le fichier apk précédent où il se trouvait.
Lors de la génération de l'apk, recherchez le dossier de destination, à partir duquel supprimez output.json et app-debug.apk du dossier de débogage. Essayez de construire le même après cela. AFAIK, c'est un bogue pour le studio Android, j'espère qu'ils pourraient corriger cela bientôt :)
Cela se produit lorsque vous utilisez la fonction auto viewBinding, Binding à l'aide de Kotlin ou viewBinding de la version 3.6.
Dans le cas où vous ajoutez des fichiers dont l'élément partage les mêmes identifiants, ViewBinding confond et crée une telle erreur.
Laissez-moi vous aider par un exemple de classe Adapter qui a deux fichiers de mise en page séparés par type de vue:
onBinding(){ holder.itemView.findViewById<Button>(R.id.id_button_submit).setOnClickListener {} }
// qui en cas de confusion entre la ressource ou la mise en page qui remplissent complètement l'exigence bcoz ont les mêmes identifiants de bouton. au cas où vous auriez à utiliser:
import kotlinx.android.synthetic.main.frag_subscription_recommend.view.* override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder( LayoutInflater.from(parent.context).inflate( if (viewType == 1) { R.layout.frag_subscription_recommend } else R.layout.frag_subscription_common, parent, false ) ) } onBinding(){ holder.itemView.id_button_submit.setOnClickListener {} }
qui permettent l'ancienne implémentation.
Faites-moi savoir si cela fonctionne de votre côté?
Désolé, mais le problème venait des répertoires de construction, de débogage et de publication. y compris le fichier json de sortie. Quoi qu'il en soit, merci pour votre réponse
Avant de lire la solution ci-dessous, veuillez lire ma mise à jour du 01.04.2020, le problème est plus profond et il est dans votre code.
J'ai le même problème après cette mise à jour 3.6.
* La solution rapide est: *
Vous devez donc supprimer tous les répertoires de construction, de débogage et de publication.
Notez que vous ne pourrez peut-être pas supprimer des répertoires de débogage et de publication entiers, mais vous pouvez supprimer tout leur contenu.
UPD:
Je pense qu'ils ont corrigé ce bug aujourd'hui:
UPD 03.03.2020: Malheureusement, le bogue n'est pas corrigé.
UPD 01.04.2020: (Pas une blague du 1er avril :))
Depuis un mois, j'ai travaillé avec les développeurs d'Android Studio et aujourd'hui, on m'a dit d'utiliser jdk au lieu d'utiliser jre, car l'une des erreurs profondes dans les journaux le disait.
Après avoir défini jdk ( Fichier-> Structure du projet- > Emplacement du SDK- > Emplacement JDK ) au lieu de jre, j'ai d'autres erreurs qui n'ont pas été affichées dans la "sortie de construction", alors j'exécute Analyser -> Inspecter le code et j'ai DIX-HUIT erreurs comme la référence à un mauvais identifiant de vue dans les mises en page, des erreurs d'orientation (salut aux tools:ignore="MissingDefaultResource"
) et des erreurs dans le manifeste également avec l'orientation: j'ai lu qu'il s'agit d'une nouvelle mise à jour de la version 3.6.1 - à propos de l' screenOrientation
paysage ou portrait , corrigé rapidement par Studio avec ceci: <activity tools:ignore="LockedOrientationActivity" />
Lorsque toutes les erreurs ont été corrigées avec Analyser -> Inspecter le code, j'ai généré avec succès un APK signé en utilisant jdk, puis en utilisant jre (juste pour le test).
Donc, en résumé, ce bogue est dû à des erreurs profondes que vous ne pouvez découvrir qu'avec l'outil Inspect Code
.
Je pense que AS ne pensera pas que c'est un bogue, je pense qu'ils diront que c'est une nouvelle fonctionnalité pour améliorer votre code. Je pense également que vous devriez essayer d'inspecter votre code même sans définir jdk au lieu de jre.
Recommandation supplémentaire du support AS:
BTW lors de l'exportation d'une release
version, nous lintVital
également lintVital
qui effectue des vérifications supplémentaires et a des erreurs marquées comme fatal
. Cette vérification est coûteuse et ne se produit donc pas dans les versions de debug
Merci beaucoup. Je l'ai déjà résolu. Êtes-vous sûr que c'est une version stable (vraiment)?
@Saadat non, j'ai vérifié maintenant - bug toujours là.
Merci beaucoup. J'allais à nouveau mettre à jour en attendant de corriger. @danyapd
Je trouve que je dois aussi supprimer projectFolder\app\[all flavor folders]
.
@Saadat regarde ma nouvelle modification et essaie d'inspecter votre code pour toute erreur.
Merci, un Build > Rebuild Project
corrigé pour moi, dans Android Studio 3.6.2.
dans mon cas, j'ai supprimé le dossier de projet, le dossier de construction pour le module d'application et les dossiers de débogage et de publication pour le module d'application, et redémarré android studio avec l'option d'invalider le cache
J'ai eu la même erreur après la mise à jour du studio android et je résout le problème en nettoyant uniquement le projet (Build> Clean Project)! :)
Supprimez le dossier «ProjectFolder / build» de votre projet. Assurez-vous d'avoir fermé Android Studio, sinon vous ne pourrez pas le supprimer.
Problèmes rencontrés lors de la mise à niveau vers le dernier studio Android 3.6.1
La suppression du cache, le nettoyage du projet et la suppression du dossier de construction n'ont pas résolu le problème.
J'ai reçu ce message d'erreur lors de la génération de l'APK signé.
Entry name res/interpolator/btn_checkbox_checked_mtrl_animation_interpolator_0.xml collided
Résolu le problème en supprimant l'APK existant. Solution assez étrange cependant.
Résolu:
Supprimez simplement le fichier apk précédent. C'est ça.
L'emplacement serait: YourProjectFolder / app / debug /
Cela a peut-être été exagéré mais je:
Cela est dû à des changements de configuration mis à jour dans le gradle.
Alors essayez simplement File -> File > Invalidate Caches / Restart
Ou supprimez les anciens fichiers APK de votre système
Je viens de supprimer tous les myProject\app\build\outputs\apk\debug
APK de débogage dans le myProject\app\build\outputs\apk\debug
et cela a fonctionné pour moi.
Ce problème est résolu en supprimant les APK générés par la version précédente existant dans les dossiers de version et de débogage.
Invalider le cache et reconstruire n'aiderait pas si vous n'avez pas supprimé les APK précédemment générés
Après la mise à jour vers Android Studio 4.1, j'ai rencontré des problèmes similaires, pour moi, c'était "entrée de nom 'classes.dex' en collision". Une erreur est survenue lors de la création de l'application à l'aide de l'option "Générer un bundle signé / APK".
La solution était simple: assurez-vous qu'Android Studio n'exécute pas l'application lors de la création (arrêtez de fonctionner, puis réessayez).
Merci pour les conseils ;-) Pour moi, c'était juste que le téléphone était connecté
essayez de nettoyer votre build et de le reconstruire, puis exécutez le projet ne fonctionnait toujours pas, puis procédez comme suit
Fichier-> Invalidate Cashes / restart-> Invalidate and restart
vous pouvez nettoyer votre build en
Construire-> Projet propre
Supprimez simplement l' app>build
et build
dossiers dans le project path
du project path
sur votre ordinateur!
Le problème est causé par la construction. La meilleure solution est de nettoyer et de reconstruire le projet. Continuez à construire et nettoyez le projet.
J'ai fait un cache et un redémarrage invalides et cela l'a corrigé.