reparar - R no se puede resolver-error de Android
regenerar el archivo r.java en android (30)
Mi proyecto ha incluido un r.java.at principio, R.layout.main funciona bien. Pero, después de agregar un código no funciona, y el error es R.layout.main no se puede resolver. ¿Cuál es el problema ?
Mira tus importaciones. Lo más probable es que la línea:
import android.R;
estaré ahí. Si ese es el caso, elimínelo, para que su proyecto resuelva R no con la clase de Recursos de Android predeterminada, sino con la generada automáticamente desde su carpeta / res /.
Acabo de descargar e instalar el nuevo SDK de Android. Quería crear una aplicación sencilla para probarlo.
El asistente creó este código:
package eu.mauriziopz.gps;
import android.app.Activity;
import android.os.Bundle;
public class ggps extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Pero Eclipse me da el error.
R no se puede resolver
en linea
setContentView(R.layout.main);
¿Por qué?
PS: Tengo un archivo XML llamado main.xml
en res/layout/
.
Acabo de tener este problema por enésima vez y me di cuenta de lo que lo estaba causando: creé un archivo XML con mayúsculas en el nombre. Todos sus nombres de archivo XML en /res
deben coincidir con [a-z0-9//._]
.
Asegúrate de haber instalado la herramienta de compilación de Android del administrador sdk
Haga clic derecho en el proyecto Propiedades-> Java BuildPath seleccione Biblioteca y agregue android-support.jar, siga estos pasos.
Vaya a Proyecto-> Propiedades-> Java Build Path que seleccione la pestaña Ordenar y exportar. Establece la biblioteca .jar de Android-support verificada y sube a la parte superior de la lista. Y limpiar y reconstruir ... Funciona para la mayoría de los casos
Cada vez que tuve un problema con R no se generó, o incluso desapareció, esto se debió a un problema en el archivo de diseño XML que evitó que la aplicación se construyera.
Cierre todos los archivos, limpie el proyecto, reinicie Eclipse.
Compruebe los nombres de archivo XML. Asegúrate de que estén todos en minúsculas.
También asegúrese de que todos los nombres de recursos de imágenes también estén en CASO INFERIOR. Tenía una letra mayúscula en el nombre de mi archivo jpg, y causó el error no resuelto R en todo mi proyecto.
Desafortunadamente ninguna de las preguntas existentes ayudó. Como mi problema parece ser específico de la plataforma, esto solo puede funcionar si está en Ubuntu 64 Bit (actualmente estoy usando Ubuntu 12). Al principio no vi la ventana "Problemas", que ya indicaba una solución, que en el entorno de 64 bits necesita las librerías de 32 bits, que pueden faltar:
sudo apt-get install ia32-libs
Instalé el paquete y reconstruí mi proyecto, lo que solucionó el problema para mí.
Después de rastrear también este problema, encontré esta nota en la documentación de Android:
http://source.android.com/source/using-eclipse.html
* Nota: Eclipse a veces le gusta agregar una declaración "importar android.R" en la parte superior de sus archivos que usan recursos, especialmente cuando le pide a Eclipse que ordene o administre las importaciones. Esto hará que tu marca se rompa. Busque estas declaraciones de importación erróneas y elimínelas. *
Mientras realizaba los tutoriales de muestra de Android, a menudo usaba el comando Ctrl + Shift + O para "Organizar importaciones" y generar cualquier declaración de importación faltante. A veces, esto generaría la declaración de importación incorrecta que ocultaría la clase R.java
que se genera automáticamente al construir.
Eliminar main.out.xml
. Soy nuevo en esto y todavía no sé para qué se usa este archivo, pero eliminarlo solucionó el problema.
En mi caso, tuve un error en mi AndroidManifest.xml
. Otros han dicho que sus archivos XML deben estar libres de errores, pero solo estaba buscando en la carpeta res /. Encuentre y solucione tantos errores posibles y el problema puede resolverse por sí solo.
Es posible que necesite actualizar las herramientas del SDK. Vuelva a reiniciar el Android SDK Manager e instale un nuevo elemento: Android SDK Build-tools.
Este error surgió en mi instalación de Linux Mint x64. Resultó que el resultado fue un error en el binario de ADB
, porque el paquete ia32-libs
no estaba instalado. Simplemente ejecutando apt-get install ia32-libs
y apt-get install ia32-libs
Eclipse se corrigió el error.
Si su distro x64 no tiene ia32-libs, tendrá que usar Multiarch.
Verifique # 4 y # 5 en esta publicación: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883
Espero que esto ayude a alguien.
Este error también puede deberse al agregar una actividad a un espacio de nombres que es diferente al espacio de nombres raíz de su paquete.
Por ejemplo, si com.example.myapp
es el espacio de nombres raíz de su paquete, puede agregar una actividad al espacio de nombres com.example.myapp.activities
.
Esto producirá el error "R no se puede resolver".
Para corregir la importación, la R en el espacio de nombres predeterminado en su actividad debe ser:
import com.example.myapp.R;
Junto con las excelentes sugerencias de las respuestas anteriores, asegúrese de que su objetivo de Android esté configurado:
- Haz click derecho en tu proyecto
- Elegir propiedades
- Elige Android en el menú de la izquierda.
- Marque una casilla junto al objetivo de compilación del proyecto apropiado.
- Haga clic en Aplicar y Aceptar
Edit: un año después encontré otra causa. Tenía una imagen .jpg en mi carpeta dibujable con el mismo nombre que una imagen .png. La referencia a esta imagen en mi código debe haber confundido el programa y dio el error "R no se puede resolver".
La solución más sencilla: a veces solo necesita guardar el archivo XML en el que estaba trabajando para que el autogenerador se active.
Guarde el archivo (por ejemplo, main.xml), luego elimine el archivo R.java y vea si el R.java regenerado resuelve el problema de resolución de R.
Lo que Will dijo era correcto
R es una clase generada automáticamente que contiene las constantes usadas para identificar sus recursos. Si no tiene un archivo R.java (sería gen / eu.mauriziopz.gps / R.java en> Eclipse con el 1.5 SDK) Recomendaría cerrar y volver a abrir su proyecto o ir a> Proyecto> Construir todo (y seleccionando "Crear automáticamente" mientras esté allí según lo recomendado por> Josef). Si eso no funciona, intente crear un nuevo proyecto, si se vuelve a crear el problema, vuelva a publicar aquí y veremos más en detalle.
pero he descubierto que había otro problema que estaba causando el primero. Las herramientas en el directorio del SDK no tenían los permisos para ejecutarse, así que no existía para Eclipse, por lo que no R.java
archivo R.java
.
Así que modificar el permiso y seleccionar "Crear automáticamente" solucionó el problema.
Muchas veces esto se debe al número de versión de MinSDK que proporcionó al crear el proyecto. Ejemplo:
Si quieres que 2.1 sea el mínimo, Android 2.1 es en realidad el nivel 7 de API.
Puede ver de qué estoy hablando cuando explora el SDK que descargó e instaló. Navegue al lugar donde instaló el SDK (por ejemplo, C:/android-sdk-windows
) y abra la carpeta llamada "plataformas". Verá algo como "android-7" listado como una carpeta, y si lo abre, hay un archivo source.properties
que, cuando se abre con un editor de texto, le mostrará la versión de la plataforma correspondiente.
Cuando creas un proyecto y debes seleccionar una API "Crear objetivo", la última columna de esa lista llamada "Nivel API" muestra el número que estás buscando al completar la configuración de MinSDK.
Este es probablemente uno de los errores más comunes que R.java
archivo R.java
no se cree en Project> gen> packagename> R.java.
Otra razón por la que R.java
podría no ser autogenerado es si tiene directorios como res / drawable-hdpi , res / drawable-mdpi , o res / drawable-ldpi .
1.6+ parece estar bien con estos directorios, pero 1.5 no los quiere. Cuando quité esos directorios, R.java
comenzó a autogenerarse de nuevo para mí.
R es una clase generada automáticamente que contiene las constantes utilizadas para identificar sus recursos. Si no tiene un archivo R.java (sería gen / eu.mauriziopz.gps / R.java en Eclipse con el 1.5 SDK) Recomendaría cerrar y volver a abrir su proyecto o ir a Proyecto> Construir todo (y seleccionando "Crear automáticamente" mientras esté allí según lo recomendado por Josef). Si eso no funciona, intente crear un nuevo proyecto, si el problema se vuelve a crear, vuelva a publicar aquí y entraremos en más detalles.
Siempre que tengas
R no se puede resolver
luego verifique el directorio /res
y debe haber algún archivo que contenga algún error y que impida que la aplicación se cree. Por ejemplo, puede ser un archivo de diseño o puede deberse a que falta algún recurso, pero ya lo definió en el archivo XML.
Si tiene alguna imagen adicional, incluso sin usar (!) O sin referencia (!) En una carpeta como res / drawables-mdpi que no cumple con las convenciones de nombres de archivos (puede contener solo [a-z0-9_.]), Es posible que la clase R.java no genere, causando la cadena de eventos a todas las otras publicaciones mencionadas. ¡Espero eso ayude!
Tenía los ejemplos de Android 8 y estaba tratando de usar Android 7 SDK. Cuando cerré el proyecto, volví a abrir la carpeta de la aplicación y elegí usar Android 8 SDK, fue capaz de encontrar el archivo R. Espero que esto ayude.
Trate de hacer su nuevo nombre de archivo de diseño XML en minúscula. Por ejemplo, use my_file.xml
lugar de myFile.xml
.
Vale la pena comprobarlo en AndroidManifest.xml
. El package
atributos tiene el valor correcto.
Es decir:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.correct.package.name"
...
Después de cambiar eso, el R.java
se volverá a generar.
Y otra cosa que puede causar este problema:
Instalé el nuevo ADT (v. 22). Dejó de crear la carpeta gen
que incluye R.java
. La solución fue instalar también nuevas herramientas de compilación de Android SDK desde el administrador del SDK de Android.
Solución encontrada here
Yo tuve este problema también. Resultó que había eliminado inadvertidamente el recurso de cadena "app_name" del archivo strings.xml
, que estaba causando un error silencioso. Una vez que lo volví a agregar, la clase R se generó con éxito y todo volvió a funcionar.
R.java
es un archivo que los complementos de Eclipse de Android crean al crear su aplicación. R.java
se crea bajo el directorio "gen". Este archivo se genera a partir de la información en el directorio "res". Si ejecuta, seleccione "Proyecto" -> "Limpiar ..." en el menú de Eclipse, se eliminará y luego se regenerará el archivo R.java
.
El problema "R no se puede resolver" ocurre cuando cambia el nombre de su paquete en el archivo AndroidManifest.xml
. Utiliza el nombre de su paquete de Android para crear un subdirectorio bajo el directorio "gen" donde almacena el archivo R.java
.
Eclipse puede tener problemas al ejecutar limpio, porque está confundido acerca de dónde se encuentra el archivo R.java
cuando cambió el nombre del paquete de Android. Puede cambiar el nombre del subdirectorio bajo gen
para que coincida con el nombre de su nuevo paquete, o puede cambiar el nombre de su paquete al nombre anterior. Haga la limpieza y luego cambie el nombre del paquete al nuevo nombre que desee. Esto funciona mejor si evita que Eclipse intente compilar mientras está cambiando el nombre del paquete. Bajo el menú "Proyecto", desmarque la opción "Crear automáticamente" y también cuando el cuadro de diálogo "Limpiar ..." le pregunte si debería "Iniciar una compilación de inmediato" desmarque la casilla para que no intente compilar mientras está cambiando el nombre del paquete Una vez que haya cambiado el nombre, puede volver a activar "Crear automáticamente".
Tenga en cuenta que si el nombre de su paquete de archivo AndroidManifest.xml
no coincide con el nombre de su paquete de Java, Eclipse terminará automáticamente agregando una "importación <nombre de su paquete de Android> .R;" línea en todos sus archivos .java
que tienen alguna referencia a R. Si cambia el nombre de su paquete AndroidManifest.xml
, a veces Eclipse no actualiza todas estas importaciones agregadas. Si eso sucede, use la refactorización de Eclipse ( ALT + Shift + R ) para cambiar la declaración de importación en uno de sus archivos Java a su nuevo nombre de paquete AndroidManifest.xml
. Es mejor hacer esto mientras tiene deshabilitado "Crear automáticamente".
R
es una clase generada. Si está utilizando las Herramientas de desarrollo de Android (ADT) , se genera cada vez que se construye el proyecto. Es posible que la opción ''Construir automáticamente'' esté desactivada.