Détails de l'erreur
AGPBI: {"kind":"error","text":"error: \u003citem\u003e inner element must either be a resource reference or empty.","sources":[{"file":"...\\app\\src\\main\\res\\values\\ids.xml","position":{"startLine":2,"startColumn":4,"startOffset":57,"endColumn":61,"endOffset":114}}],"original":"","tool":"AAPT"}
:app:mergeDebugResources
Error: Java.util.concurrent.ExecutionException: com.Android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
:app:mergeDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Error: Java.util.concurrent.ExecutionException: com.Android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details.
Fichier de ressources
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="tv_deviceName" type="id">tv_deviceName</item>
</resources>
environnement de construction
Lors de la déclaration de l'identifiant dans les ressources, le corps doit être vide
<item
type="id"
name="id_name" />
Pour plus d'informations, consultez le lien ci-dessous.
https://developer.Android.com/guide/topics/resources/more-resources#Id
Donc, comme Oliver Manyasa mentionné, il devrait être comme ci-dessous
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="tv_deviceName" type="id"/>
</resources>
J'ai eu un problème similaire après la mise à niveau vers Android Studio 3.2.1.
L'erreur pointait vers cet élément dans le fichier ids.xml
<item name="mnuActivate" type="id">Activation</item>
Comme mentionné par l'utilisateur Sangeet Suresh, je l'ai changé pour
<item name="mnuActivate" type="id" />
Cela a résolu le problème.
Pour tous les autres qui se grattent encore la tête pour trouver la solution, créez ids.xml
à l'intérieur de src/main/res/values
avec un contenu similaire au suivant (mais assurez-vous de le mettre à jour avec les identifiants pour lesquels vous voyez des erreurs. ):
<?xml version="1.0" ?>
<items>
<item name="animator" type="id"/>
<item name="date_picker_day" type="id"/>
<string name="deleted_key"/>
</items>
Maintenant, Android Studio vous indiquera une erreur pour les valeurs explicites. Si ces valeurs proviennent d’une bibliothèque que vous utilisez, vous ne pouvez pas modifier le fichier intermédiaire. Vous devez donc le modifier ici et lors de la fusion de vos fichiers. code Android studio en prend soin.
Dans votre fichier de ressources, supprimez la balise de fermeture et le corps i.e Supprimez "tv_deviceName".
et laissez votre fichier de ressources être comme:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="tv_deviceName" type="id"/>
</resources>
Pour moi, cela échouait à cause des nouvelles versions de Gradle. Je suis à peu près sûr que certains plugins que j'utilise ont des incompatibilités avec les dernières versions. J'ai fini avec succès avec les versions suivantes:
fichier gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.Zip
fichier build.gradle
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.1'
}
MODIFIER:
Comme nous voulons utiliser les versions 3.2. +, Ce n'est pas une solution fiable.
Ce que j'ai fini par créer, c'est créer un nouveau fichier ids.xml et remplacer toutes les valeurs en conflit.
exemple de fichier ids.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="cc_card" type="id"/>
<item name="cc_ccv" type="id"/>
<item name="cc_entry" type="id"/>
<item name="cc_entry_internal" type="id"/>
<item name="cc_exp" type="id"/>
<item name="cc_form_layout" type="id"/>
<item name="cc_four_digits" type="id"/>
<item name="cc_Zip" type="id"/>
<item name="text_helper" type="id"/>
</resources>
J'ai eu l'erreur ci-dessous
error: <item> inner element must either be a resource reference or empty.
Dans mon cas, j'ai créé un nouveau projet de test et supprimé la barre d'outils et la fab du fichier activity_main.xml, mais ces fichiers se trouvaient également dans le fichier ids.xml. Après avoir supprimé les deux identifiants du fichier ids.xml, j'ai pu exécuter. Dans votre fichier ids.xml, vous pouvez avoir de nombreux identifiants, mais lorsque j'ai créé un nouveau projet, il n'a pas d'identifiant.
Dans la capture d'écran ci-dessus, vous pouvez voir l'emplacement exact du fichier.