studio programacion herramientas fundamentos con avanzado aplicaciones android android-layout android-gradle aapt

programacion - Android: el elemento interno debe ser una referencia de recurso o vacío



manual de android en pdf (5)

Al declarar id en recursos, el cuerpo debe estar vacío

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

Para más información por favor, eche un vistazo en el siguiente enlace

https://developer.android.com/guide/topics/resources/more-resources#Id

Entonces, como mencionó Oliver Manyasa , debería ser como abajo

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

Error de detalles

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.

Archivo de recursos

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

Construir ambiente

  • Android Studio 3.1.4
  • minSdkVersion = 21
  • targetSdkVersion = 28
  • compileSdkVersion = 28
  • buildToolsVersion = "28.0.2"

En su archivo de recursos, elimine la etiqueta de cierre más el cuerpo, es decir, elimine "tv_deviceName"

y deja que tu archivo de recursos sea como:

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


Para todos los demás que aún se están rascando la cabeza para obtener la solución para esto, cree ids.xml dentro de src/main/res/values con un contenido similar al siguiente (pero asegúrese de actualizarlo con los identificadores en los que está viendo los errores). ):

<?xml version="1.0" ?> <items> <item name="animator" type="id"/> <item name="date_picker_day" type="id"/> <string name="deleted_key"/> </items>

Ahora, Android Studio le dará un error para los valores explícitos y si esos valores provienen de alguna biblioteca que está usando, entonces no puede hacer un cambio en el archivo intermedio, entonces cambie aquí y mientras fusiona su código, Android Studio se encarga de eso.


Tuve error por debajo

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

En mi caso, creé un nuevo proyecto de prueba y eliminé la barra de herramientas y fab del archivo activity_main.xml, pero estos también estaban en el archivo ids.xml. Después de eliminar ambos identificadores del archivo ids.xml pude ejecutar. En su archivo ids.xml puede tener muchos ID, pero como creé un nuevo proyecto, no tiene ID.

En la captura de pantalla anterior puede ver la ubicación exacta del archivo.


Tuve un problema similar después de actualizar a Android Studio 3.2.1

El error estaba apuntando a este elemento en el archivo ids.xml

<item name="mnuActivate" type="id">Activation</item>

Como lo mencionó el usuario Sangeet Suresh , lo cambié a

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

Eso solucionó el problema.