¿Hay algún uso legítimo para @ + android: id?
Después de actualizar mis herramientas de Android a la última versión para trabajar en API21 , intentar compilar mi proyecto resultó en el siguiente error:
- update_languages_button_preference_layout.xml: 2: nota: ¿Quieres usar @ + id en lugar de @ + android: id ?
- update_languages_button_preference_layout.xml: 2: error: creando un recurso para el paquete externo android: id / layout.
- update_languages_button_preference_layout.xml: 2: error: Error: Ningún recurso encontrado que coincida con el nombre dado (en 'id' con el valor '@ + android: id / layout' ).
El problema parece ser la línea android:id="@+android:id/layout"
: reemplazar @ + android: id por @ + id fue suficiente para poder compilar y ejecutar el proyecto normalmente.
- Android etiqueta XML llamado comer-comentario, ¿cuál es su uso?
- Desplazamiento y desaparición de líneas de código; Problemas con el Editor XML de Eclipse
- El teclado virtual cubre un EditText en un PopupWindow
- Acceso al atributo de manifiesto android: installLocation
- Android Diseño de materiales Navegación Vista -> Elemento
Sin embargo, una búsqueda rápida a través de toda la base de código reveló algunas otras ubicaciones en el proyecto donde se utiliza la construcción android:id="@+android:id/...
Estos aparentemente no impidieron que el proyecto pasara todas las pruebas, incluso si no puedo asegurar que todos están todavía en uso.
-
¿Hay algún uso legítimo de
android:id="@+android:id
que justificaría dejar esas referencias en nuestros archivos xml, y no reemplazarlas por@+id
? -
¿Por qué no plantearon el mismo error que el primer archivo?
- Android gradle src / androidTest / res / diseño / mylayout.xml no se encuentra en mypackage.R
- Creación de estilos-v21.xml
- Android, enviar y recibir XML a través del método HTTP POST
- ¿Cómo afectar a elementos fuera de un listview cuando se hace clic en algunos elementos de la vista de lista?
- La forma más fácil de escribir y leer un XML
- AndroidManifest.xml con varias etiquetas de aplicación
- Botón de anillo redondo en Android
- ¿Cómo inserto texto dentro de un rectángulo redondeado en la vista de Android?
No, nunca debes usar @ + android: id en tu aplicación. El espacio de nombres android está reservado para el framework. Esto nunca ha sido seguro para una aplicación y ahora generará un error de compilación.
Para un poco de fondo, la generación de nuevos IDs dentro del espacio de nombres android los pondrá en el espacio no utilizado después de los identificadores de espacio de nombres android existentes. Esto funcionará bien hasta que se agreguen nuevos identificadores en el marco, momento en el que su ID interno se superpondrá con un ID de marco real y causará problemas extraños.
En cuanto a las otras instancias, éstas deberían estar generando errores también. Es posible que haya un error en AAPT. Independientemente, debe eliminar todas las instancias de @ + android de sus recursos.
Aunque mi comentario es muy tarde. Me enfrenté al mismo problema hoy, cuando actualizó mi eclipse y herramientas. Cambiado @ + android: id a @ + id y resolvió mi problema.