54 votes

Android - L'élément interne doit être soit une référence à une ressource, soit vide.

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.

Dossier de ressources

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="tv_deviceName" type="id">tv_deviceName</item>
</resources>

Environnement de construction

  • Android Studio 3.1.4
  • minSdkVersion = 21
  • targetSdkVersion = 28
  • compileSdkVersion = 28
  • buildToolsVersion = "28.0.2" (en anglais)

0 votes

Même chose dans mon cas alors je supprime le code du fichier ids.xml . Entrez la description de l'image ici

2voto

Patrick Steil Points 21

J'ai simplement créé ce fichier auto-généré dans res/xml/values avec des balises vides comme

<?xml version="1.0" encoding="utf-8"?>
<resources>
    ...
    <item type="id" name="icon" />
    ...
</resources>

Cela a fait l'affaire !

1voto

GSK Points 1322

J'ai eu l'erreur suivante

error: <item> inner element must either be a resource reference or empty.

Dans mon cas, j'ai créé un nouveau projet de test et j'ai supprimé la barre d'outils et le fab du fichier activity_main.xml, mais ils étaient également dans le fichier ids.xml. Après avoir supprimé les deux ID du fichier ids.xml, j'ai pu m'exécuter. Dans votre fichier ids.xml vous pouvez avoir beaucoup d'ID mais comme j'ai créé un nouveau projet, il n'a pas d'ID.

enter image description here

Dans la capture d'écran ci-dessus, vous pouvez voir l'emplacement exact du fichier.

1voto

Lance Samaria Points 1995

Dans le values j'ai double-cliqué sur le dossier ids.xml Ce fichier a causé le problème

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="roll_button" type="id">rollButton</item>
</resources>

enter image description here

J'ai essayé certaines des réponses votées :

<item name="roll_button" type="id">

Mais j'ai eu une erreur qui disait :

The element type "item" must be terminated by the matching end-tag "</item>".

Donc pour réparer, j'ai juste ajouté la balise de fin correspondante :

<item name="roll_button" type="id"></item>

UPDATE

Je suis nouveau dans Kotlin Donc, ce que je viens de remarquer et que je n'avais pas réalisé, c'est que <item name="roll_button" type="id" /> besoins de l barre oblique à la fin pour aller avant la fermeture > . Si vous ne l'incluez pas, vous obtiendrez l'erreur que j'ai eue, mais si vous l'incluez, vous obtiendrez l'erreur suivante. il a accepté les travaux de réponse .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X