regenerar - reparar r android studio




R no se puede resolver-error de Android (20)

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


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.


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.


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


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;

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.


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


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.


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 .


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!


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.


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





android-sdk-tools