error - Android-¿Cómo regenerar la clase R?
cannot resolve symbol r (26)
Descubrí que esto me sucede con un diseño roto y todo explota. Relájate, es como ese viejo error cuando aprendiste programación por primera vez, donde olvidas un punto y medio y genera cientos de errores. Muchos entran en pánico, presionan todos los botones y empeoran las cosas.
Solución
- Asegúrate de que todo lo que la
R.
enlaza no esté roto. Si está roto, es posible que ADK no regenere R. Repare todos los errores en sus archivos XML . - Si de alguna manera tocaste algo y creaste
import android.R
en tu actividad, quítalo . - Ejecutar Proyecto -> Limpiar . Esto eliminará y regenerará R y BuildConfig.
- Asegúrese de que Proyecto -> Crear automáticamente esté marcado.
- Espere unos segundos para que desaparezcan los errores.
- Si no funciona, elimine todo dentro de la carpeta / gen /
- Si todavía no funciona, intente hacer clic derecho en su proyecto -> Herramientas de Android -> Reparar las propiedades del proyecto .
Qué hacer si R no se regenera
Esto generalmente ocurre cuando tienes un archivo xml roto.
- Compruebe los errores dentro de sus archivos XML, principalmente dentro de la carpeta / res /
- Los lugares comunes son / layout / y / values / especialmente si ha cambiado uno de ellos recientemente
- Comprueba AndroidManifest.xml, creo que a menudo cambio una cadena y olvido cambiar el nombre de la cadena de AndroidManifest.xml.
- Si no puedes encontrar el problema clic con el botón derecho / gen / -> Restaurar desde la historia local ... -> marca R.java -> haz clic en Restaurar . Esto no resuelve el problema, pero borrará los errores adicionales para facilitar la búsqueda del problema.
Sé que ya hay muchas respuestas aquí, pero este es el primer enlace de Google, así que estoy compilando todos los consejos aquí y espero que ayude a alguien más nuevo en esto :)
Posible duplicado:
Desarrollando para Android en Eclipse: R.java no genera
He importado un proyecto en mi Eclipse IDE, pero me está dando un error ya que el archivo R no se genera automáticamente.
¿Cómo puedo editar el archivo R para que coincida con los requisitos de mi proyecto?
En otra pregunta de , alguien respondió esto: debe deshacerse de advertencias y errores (sintaxis y enlaces) en sus archivos xml. Esto más hacer un proyecto de limpieza / construcción.
Proyecto -> Limpiar, y elija la opción para construir el proyecto.
En caso de que alguien más encuentre este hilo al buscar en Google, como lo hice yo:
Tuve lo que parecía ser el mismo problema por un tiempo, y después de algunas excavaciones noté que el archivo R.java se compiló correctamente, pero se ignoró solo para uno de mis archivos fuente. El problema para este archivo en particular fue que Eclipse había agregado "útilmente" la siguiente línea en la parte superior:
import android.R;
Eso efectivamente esconde las cosas del proyecto R. Solo elimínalo y todo estará bien de nuevo ...
En mi caso, fue un archivo XML mal llamado que causó que mi archivo R no se reconstruyera. Esto no apareció en el explorador de paquetes, pero se mostró en el LogCat. Busque las advertencias allí sobre sus archivos de res. No importa cuántas veces limpie su proyecto, el archivo R no se reconstruirá hasta que se hayan solucionado esos errores.
Este problema normalmente ocurre al importar desde un proyecto existente. Intente corregir todos los errores de todos los archivos .xml en la carpeta res , así como también el archivo Manifest . Lo más probable es que los errores se muestren en el parámetro " match_parent ", cámbielo a " fill_parent ". Cuando todos los errores estén claros, aparecerá R.java.
Si no hay ningún error en cualquier archivo .xml. Intente editar cualquier archivo xml (como eliminar una letra y volver a escribirla) y luego guardar el archivo, esto generará R.java.
He intentado todas las soluciones anteriores. Pero desafortunadamente no resolvió mi problema. Mi R.java desapareció tan pronto como pegué una nueva imagen en mi carpeta dibujable. Después de leer las respuestas para esta pregunta, traté de eliminar el icono que había pegado previamente (mientras que Build Automatically Enabled) y todo estaba bien afetr. ¡Espero que esto ayude a alguien!
Intente agregar un nuevo "archivo XML de Android" a, por ejemplo, la carpeta /res/layout
. Esto podría hacer que el complemento regenere la clase R
Mi problema estaba en el archivo Manifiest. He borrado los iconos del iniciador y no hice referencia a los nuevos en Manifiest :)
Mi problema fueron los errores en mis archivos XML. Los errores no siempre se detectan automáticamente en el editor común de Android de Android o en el editor de manifiesto común de Android, así que intente utilizar el editor de texto normal. Por ejemplo, de alguna manera se han insertado algunos galimatías al azar de un archivo .java en mis archivos manifest y strings.xml.
Haga clic con el botón derecho en cualquier archivo XML (muy probablemente en la carpeta / res o AndroidManifest.xml) y haga clic en "Abrir con", luego seleccione "Editor de texto". Asegúrese de que todo se vea bien y luego guárdelo. Además, asegúrese de habilitar "Crear automáticamente" para su proyecto. Borré mi archivo R.java y fue reconstruido desde cero, por lo que no es necesario restaurarlo desde el historial local.
Ok, lo arreglé:
Cuando cambié el manifiesto a la versión de destino 1.5, aparecieron millones de errores y solo uno no estaba relacionado con la inexistencia de la clase R. En los atributos del archivo de manifiesto, "targetSdkVersion" y "maxSdkVersion" no existían en sdk 1.5.
Debido a esto, la clase R no pudo generar.
Para generar el archivo R nuevamente:
- Modificar algo en layout-> activity_main.xml
- Guarda el archivo
- Proyecto-> Limpiar ...
Simplemente elimine el archivo R ubicado en el directorio gen y luego pruebe Proyecto-> Limpiar. Luego crea tu aplicación nuevamente.
Para mí, no se definió un recurso de valor String ... después de que lo agregué manualmente a Strings.xml, ¡la clase R se regeneró automágicamente!
Para regenerar la clase R., tendrás que probar varias técnicas.
- Elimine cualquier importación R de sus archivos fuente java:
import R.android
- Asegúrese de abrir el panel "Problemas" yendo a Ventana-> Mostrar vista-> Problemas
- Si tiene algunos errores en sus recursos xml, deberá corregir esos errores. En mi caso, tuve que cambiar mis atributos de id para incluir el signo "+" de la siguiente manera:
android:id="@+id/grp_txt"
- Ahora proceda a hacer Proyecto-> Limpieza
- Finalmente haz Proyecto-> Cerrar, Proyecto-> Abrir
El signo "+" indica una nueva identificación de recurso y obliga a la herramienta aapt a crear un nuevo entero de recurso en la clase R.java.
Puede ser que pueda ir a las propiedades del proyecto y seleccionar la opción de Android y luego definir el objetivo para el proyecto. Una vez que aplique la API objetivo seleccionada para este proyecto, generará automáticamente R.java.
Puede usar la "Restauración del historial local" de Eclipse para restaurar su archivo R anterior si se ha eliminado. Después de eso, posiblemente verá lo que evita que Eclipse construya sus archivos (he visto otros errores que antes que realmente ayudaron a solucionar el problema).
Puedes modificar cualquier archivo xml en la carpeta / res e incluso solo agregar un espacio y guardarlo, se regenerará.
Reabro el eclipse, edito uno de mis archivos xml y luego descubro que mi clase activy hacía referencia a android.R en lugar de a mi paquete "R" :-)
Si eliminó accidentalmente su R en eclipse mediante "project clean" (no haga esto), haga clic con el botón derecho en su archivo de proyecto -> Restaurar desde el historial local ...
recrear tu R
Mi caso:
- Broken xml causó error en R. (debido a ä, ö, ü, letras en id)
- proyecto limpio borró mi R.
Lo que hice:
- recreó R de la historia local
- verifiqué las importaciones erróneas de R en mis clases (como import android.R) y las eliminé
- corrigió ese archivo xml y guardó su contenido en un archivo txt externo
- eliminado el xml por completo de mi proyecto.
- ejecuté mi proyecto una vez
- poner ese xml fijo de nuevo en su lugar
y...
- le dio a mi novia un gran abrazo sin una razón después de enloquecer como un Hulk.
Si usa Intellij IDEA, puede hacer clic en Build - Rebuild Project
Simplemente puede eliminar el archivo R.java de su proyecto y se regenerará suponiendo que tiene la generación habilitada automáticamente. Si no tiene la compilación habilitada automáticamente, simplemente vaya a project-> build all
Sobre todo un problema con un archivo de diseño no válido. Abra la vista ''Problemas'' y busque errores en los archivos de diseño XML. Arrégleselos y la clase R será recreada.
En mi caso no hubo un error real. La vista del problema mostró un error en un diseño xml. El editor también mostró el error xml. Simplemente reformateando el xml usando el formateador automático con ''ctrl-f'' ''se corrigió'' el ''error'' xml y se recreó la clase R.
También puede hacer clic con el botón derecho en el project -> Android Tools -> Fix Project Properties
. Eso debería causar que la clase R.java se vuelva a generar.
Tengo un problema que findViewById(R.id.edit_text)
pero devuelve TextView no EditText. Creo que el problema es que la clase R.id tiene un número de identificación equivocado, entonces, limpio el proyecto y funciona bien.
Tuve el mismo problema: "R" desapareció. Y ninguno de los consejos dados aquí ayudó. Afortunadamente, encontré el motivo: de alguna manera, Eclipse perdió el objetivo de Project-Properties. Fue desarmado. No sé hasta ahora qué fue lo que hizo, pero ayudarlo a recuperarlo. Entonces, ¡la falta de atención R también puede significar el objetivo perdido !
Tuve ese problema y simplemente hice clic derecho en el paquete de mi proyecto y Build Project. Al instante, la clase R apareció en paquete gen.
Tuve un problema similar cuando el archivo R.java no se estaba regenerando después de haber agregado algunos iconos y archivos de diseño. Intenté limpiar y reconstruir y las cosas empeoraron desde entonces, el archivo original de R.java había desaparecido y aún no se había regenerado. Eventualmente me di cuenta de que debe haber errores de compilación para el compilador que genera R.java y no se nos muestran esos en la consola. Afortunadamente, había notado antes que
- es un error si un archivo .xml se refiere a otro que no existe y
- es un error tener letras mayúsculas en los nombres de tus archivos (¿por qué está prohibido? ME ENCANTA el camel case).
De todos modos, después de cambiar el nombre de mis iconos y archivos .xml a minúsculas y luego arreglar todas las referencias dentro de los archivos .xml, voila, R.java se regeneró. Justo a tiempo para sentirme bien cuando paré para almorzar :-)