R no se puede resolver-error de Android




reparar r android studio (24)

Primero verifique si hay algún error en cualquier diseño xml o no, si luego lo resuelve primero.

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

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/ .


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 /.


Es posible que necesite actualizar / instalar herramientas SDK. Vuelva a iniciar el Administrador de SDK de Android e instale un nuevo elemento: Android SDK Build-tools.one mediante una eliminación, corrija cuál funciona para usted.


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\\._] .


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;

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í.


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.


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".


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!


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


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 .


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.


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


Junto con las excelentes sugerencias de las respuestas anteriores, asegúrese de que su objetivo de Android esté configurado:

  1. Haz click derecho en tu proyecto
  2. Elegir propiedades
  3. Elige Android en el menú de la izquierda.
  4. Marque una casilla junto al objetivo de compilación del proyecto apropiado.
  5. 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".


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.


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


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.


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.


Sólo tienes que ir a la lista del menú superior de Android. haga clic en Crear menú, en Crear haga clic en Reconstruir proyecto .


Eliminar main.out.xml . Soy nuevo en esto y todavía no sé para qué se usa este archivo, pero eliminarlo solucionó el problema.


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.



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.


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.







android-sdk-tools