R no puede resolverse: error de Android

Acabo de descargar e instalar el nuevo Android SDK. Quería crear una aplicación simple 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 línea

 setContentView(R.layout.main); 

¿Por qué?

PD: Tengo un archivo XML llamado main.xml en res/layout/ .

Después de rastrear este problema también, encontré esta nota en la documentación de Android:

http://source.android.com/source/using-eclipse.html

* Nota: A veces, a Eclipse le gusta agregar una statement “import android.R” en la parte superior de sus archivos que usa 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 revisaba los ejemplos de tutoriales de Android, solía usar el comando Ctrl + Shift + O para “Organizar Importaciones” y generar las declaraciones de importación faltantes. A veces, esto generaría la instrucción de importación incorrecta que ocultaría la clase R.java que se genera automáticamente cuando R.java .

Cada vez que tenía un problema con R no se generaba, o incluso desaparecía, esto se debía a algún problema en el archivo de diseño XML que impedía la creación de la aplicación.

Cada vez que obtienes

R no se puede resolver

luego verifique el directorio /res y debe haber algún archivo que tenga algún error y que impida la creación de la aplicación. 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 imágenes adicionales, incluso sin usar (!) O sin referencia (!) En una carpeta como res / drawables-mdpi que no cumple con las convenciones de nomenclatura de archivos (puede contener solo [a-z0-9_.]), Es posible que la clase R.java no se genere, lo que provoca la cadena de eventos a la que se refieren todas las demás publicaciones. ¡Espero eso ayude!

mi proyecto incluye un r.java.at al 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 predeterminada de Recursos de Android, sino con la generada automáticamente desde su carpeta / res /.

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 comstackción SDK de Android desde el Administrador de SDK de Android.

Solución encontrada aquí

R.java es un archivo que los complementos de Android Eclipse crean al construir 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, eliminará y volverá a generar el archivo R.java .

El problema “R no se puede resolver” sucede cuando cambia el nombre de su paquete en el archivo AndroidManifest.xml . Utiliza su nombre de paquete de Android para crear un subdirectorio en el directorio “gen” donde almacena el archivo R.java .

Es posible que Eclipse tenga problemas al ejecutar las R.java limpieza, ya que está confundido acerca de dónde se encuentra el archivo R.java cuando ha cambiado el nombre del paquete de Android. Puede cambiar el nombre del subdirectorio en gen para que coincida con su nuevo nombre de paquete, o puede cambiar el nombre de su paquete al antiguo. Haga la limpieza y luego cambie el nombre del paquete al nuevo nombre que desee. Esto funciona mejor si detiene que Eclipse intente comstackr mientras cambia el nombre del paquete. En 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 comstackción inmediatamente” desmarque la casilla para que no intente generar mientras está cambiando el nombre del paquete. Después de haber cambiado el nombre, puede volver a activar “Crear automáticamente”.

Tenga en cuenta que si su nombre de paquete de archivo AndroidManifest.xml no coincide con el nombre de su paquete de Java, Eclipse terminará agregando automáticamente una “importación .R;” .java todos sus archivos .java que tengan referencias a R. Si cambia el nombre de su paquete AndroidManifest.xml , algunas veces Eclipse no actualiza todas estas importaciones adicionales. Si eso ocurre, use la refactorización de Eclipse ( ALT + Shift + R ) para cambiar la statement de importación en uno de sus archivos Java a su nuevo nombre de paquete AndroidManifest.xml . Lo mejor es hacer esto mientras ha desactivado “Crear automáticamente”.

Lo que Will dijo fue correcto

R es una clase generada automáticamente que contiene las constantes utilizadas para identificar tus> recursos. Si no tiene un archivo R.java (sería gen / eu.mauriziopz.gps / R.java en> Eclipse con el SDK 1.5) le recomendaría cerrar y volver a abrir su proyecto o ir a> Proyecto> Crear todo (y seleccionando “Build Automatically” mientras está allí, tal como lo recomienda Josef). Si eso no funciona, intente hacer un nuevo proyecto, si el problema se recrea, entonces> publique aquí nuevamente y entraremos en más detalles.

pero descubrí que había otro problema que estaba causando el primero. Las herramientas en el directorio SDK no tenían los permisos para ejecutarse, por lo que era como 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” resolvió el problema.

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 SDK 1.5), le recomendaría cerrar y volver a abrir su proyecto o ir a Proyecto> Crear todo (y seleccionando “Build Automatically” (Crear automáticamente) mientras está allí, según lo recomendado por Josef). Si eso no funciona, intente hacer un nuevo proyecto, si el problema se recrea, vuelva a publicar aquí y entraremos en más detalles.

Cierre todos los archivos, limpie el proyecto, reinicie Eclipse.

Vale la pena verificar en AndroidManifest.xml . El package atributos tiene el valor correcto.

Es decir:

  

Después de cambiar eso, el R.java se volverá a generar.

Este error también puede deberse a que agrega una actividad a un espacio de nombres que es diferente al espacio de nombres raíz para su paquete.

Por ejemplo, si com.example.myapp es el espacio de nombres raíz para 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 nombre predeterminado en su actividad debe ser:

 import com.example.myapp.R; 

Junto con las excelentes sugerencias en las respuestas anteriores, asegúrate de que tu objective de Android esté configurado:

  1. Haz clic derecho en tu proyecto
  2. Elija Propiedades
  3. Elige Android en el menú de la izquierda
  4. Marque una casilla junto al objective de comstackción del proyecto correspondiente.
  5. Haga clic en Aplicar y Aceptar

Editar: 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. Hacer referencia a esta imagen en mi código debe haber confundido el progtwig y me dio el error “R no se puede resolver”.

Asegúrese de haber instalado la herramienta de comstackción de Android desde el administrador de SDK

proyecto, haga clic derecho en propiedades-> Java BuildPath seleccione Biblioteca y agregue android-support.jar el siguiente paso.

Vaya a Proyecto-> Propiedades-> Ruta de comstackción de Java que seleccione Ordenar y exportar pestaña. Establezca la biblioteca .jar de android-support seleccionada y suba a la parte superior de la lista. Y limpiar y reconstruir … Funciona para la mayoría de los casos

enter image description here

Acabo de tener este problema por millonésima vez y me di cuenta de lo que lo estaba causando: Creé un archivo XML con letras mayúsculas en el nombre. Todos sus nombres de archivo XML en /res deben coincidir con [a-z0-9\\._] .

La solución más simple: a veces solo necesitas guardar el archivo XML en el que estabas trabajando para que el generador automático funcione.

Guarde el archivo (ej. Main.xml), luego borre el archivo R.java y vea si el R.java regenerado resuelve el problema de resolución R.

R es una clase generada. Si está utilizando las herramientas de desarrollo de Android (ADT) , se genera cada vez que se crea el proyecto. Puede tener desactivada la opción “Crear automáticamente”.

Verifique los nombres de los archivos XML. Asegúrate de que estén todos en minúscula.

También asegúrese de que todos los nombres de recursos de imágenes también estén en LOWER CASE. Tenía una letra mayúscula en el nombre de mi archivo jpg, y causó el error R no resuelto en todo mi proyecto.

Este error apareció en mi instalación x64 Linux Mint. Resultó que el resultado fue una falla 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 corrigió el error.

Si su distribución x64 no tiene ia32-libs, tendrá que ir a Multiarch.

Verifique # 4 y # 5 en esta publicación: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Espero que esto ayude a alguien.

Es posible que deba actualizar las herramientas de SDK. Vuelva a iniciar Android SDK Manager e instale un nuevo elemento: Android SDK Build-tools.

enter image description here

Es posible que deba actualizar / instalar las herramientas de SDK. Vuelva a iniciar Android SDK Manager e instale un nuevo elemento: Android SDK Build-tools.one by one delete, solucione cuál funciona para usted. enter image description here

Yo tuve este problema también. Resultó que había borrado inadvertidamente el recurso de cadena “nombre_aplicación” del archivo strings.xml , que causaba un error silencioso. Una vez que lo agregué de nuevo, la clase R se generó con éxito y todo volvió a funcionar.

Primero compruebe si hay algún error en cualquier diseño xml o no, si luego resuélvelo primero.

De lo contrario, elimine la dependencia de junit del proyecto y vuelva a generar el proyecto.

enter image description here

Intente hacer que su nuevo nombre de archivo de diseño XML esté minúscula. Por ejemplo, use my_file.xml lugar de myFile.xml .

Otra razón más por la que R.java podría no obtener autogeneración 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 R.java esos directorios, R.java comenzó a R.java para mí.

Lamentablemente, ninguna de las preguntas existentes ayudó. Dado que mi problema parece 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 sugería una solución, que en el entorno de 64 bits necesitas las librerías de 32 bits, que pueden faltar:

sudo apt-get install ia32-libs

Instalé el paquete y reconstruí mi proyecto, lo que me solucionó el problema.

reinicia tu computadora.
Nada me ayudó, excepto de esta manera

Solo ve a la lista del menú Top de Android. haga clic en Menú de comstackción , en Crear haga clic en Reconstruir proyecto .

enter image description here

Tenía los ejemplos de Android 8 y estaba tratando de usar Android 7 SDK. Cuando cerré el proyecto y volví a abrir la carpeta de la aplicación y elegí usar Android 8 SDK, pude encontrar el archivo R. Espero que esto ayude.

En mi caso, tuve un error en mi AndroidManifest.xml . Otros han dicho que sus archivos XML deben estar libres de errores, pero yo solo estaba buscando en la carpeta res /. Encuentra y soluciona la mayor cantidad posible de errores y el problema bien puede resolverse por sí mismo.

Muchas veces esto se debe al número de versión MinSDK que proporcionó al crear el proyecto. Ejemplo:

Si desea que 2.1 sea el mínimo, Android 2.1 es en realidad API Nivel 7.

Puede ver de lo que estoy hablando cuando navega por el SDK que descargó e instaló. Navegue hasta el lugar donde instaló el SDK en ( C:\android-sdk-windows por ejemplo) y abra la carpeta llamada “plataformas”. Verá algo como “android-7” listado como una carpeta, y si abre eso, hay un archivo de source.properties que, cuando se abre con un editor de texto, le mostrará la versión de la plataforma correspondiente.

Cuando crea un proyecto y debe seleccionar una API de “Build Target”, la última columna de esa lista llamada “API Level” muestra el número que está buscando al completar la configuración de MinSDK.

Este es probablemente uno de los errores más comunes que hace que el archivo R.java no se cree en Project> gen> packagename> R.java.