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.