Pregunta

Acabo de descargar e instalar el nuevo SDK de Android. Quería crear una sencilla aplicación para probar la misma.

El asistente creado 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);
    }
}

Eclipse me da el error

  

R no puede ser resuelto

en la línea

setContentView(R.layout.main);

¿Por qué?

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

.
¿Fue útil?

Solución 7

Lo que Will dijo que era correcto

  

R es una clase generada automáticamente que mantiene las constantes utilizadas para identificar sus> recursos. Si usted no tiene un archivo R.java (sería GEN / eu.mauriziopz.gps / R.java en> Eclipse con el SDK 1.5) recomendaría el cierre y reapertura de su proyecto o va a> Proyecto> Construir todo (y seleccionando la opción "Crear automáticamente" si bien no como recomienda> Josef). Si eso no funciona, que trate de hacer un nuevo proyecto, si el problema es recreada que> post aquí de nuevo y vamos a entrar en más detalles.

pero he descubierto que había otro problema que estaba causando la primera. Las herramientas en el directorio SDK no tenían los permisos para ser ejecutados, así que era como la no existía para Eclipse, por lo que no construyó el archivo R.java.

Así que la modificación del permiso y seleccionando la opción "Crear automáticamente" resuelto el problema.

Otros consejos

Después de la búsqueda de este problema, así, encontré esta nota en la documentación de Android:

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

  

* Nota: Eclipse veces le gusta añadir una "importación android.R" en la declaración   la parte superior de los archivos que utilizan los recursos,   especialmente cuando se pregunta a Eclipse   ordenar o de otra manera a las importaciones. Esta   hará que su make de romper. Mira   hacia fuera para éstos importación errónea   declaraciones y eliminarlos. *

Mientras que va a través de los tutoriales de muestra Android, solía utilizar el Ctrl + Mayúsculas + O comando para "Organizar importaciones" y generar cualquier declaración de importación que faltan. A veces esto generaría la declaración incorrecta de importación que ocultaría la clase R.java que se genera automáticamente cuando se genera.

Cada vez que tenía un problema con R no ha generado, o incluso desaparecer, esto fue debido a algún problema en el archivo XML disposición que impedía la aplicación de ser construida.

Siempre que reciba

  

R no puede ser resuelto

A continuación, compruebe el directorio /res y que debe haber algún archivo que tiene algún error en ella y que impide la aplicación de la construcción. Por ejemplo, puede ser un archivo de diseño o puede ser debido a algún recurso que falta es, pero ya se definió en el archivo XML.

Si tiene alguna incluso no utilizados (!) O no referenciados (!) Imágenes adicionales, en una carpeta como res / dibujables-MDPI que no se ajusten a las convenciones de nomenclatura de archivos (sólo podrán contener [a-z0-9_.] ), la clase R.java podría no generar, haciendo que la cadena de eventos todos los demás puestos mencionados. Espero que ayude!

  

mi proyecto tiene un r.java.at incluyen el principio, R.layout.main trabajar good.But, después de añadir algo de código que no funciona, y el error es R.layout.main no puede resolverse. ¿cuál es el problema?

Mire sus importaciones. Lo más probable es que la línea:

import android.R;

estará allí. Si ese es el caso, y eliminar, por lo que su proyecto resolverá R no con la clase Recursos Android por defecto, pero con el auto-generado desde su / res / carpeta.

Y otra cosa que puede causar este problema:

He instalado el nuevo ADT (v. 22). Se detuvo la creación de la carpeta que incluye gen R.java. La solución fue instalar también nuevo SDK de Android construir herramientas del Administrador de Android SDK.

solución encontrada aquí

R.java es un archivo que los plugins de Eclipse Android crea mientras la construcción de su aplicación. R.java se crea bajo el "gen" directorio. Este archivo se genera a partir de la información contenida en las "res" directorio. Si ejecuta seleccione "Proyecto" -> "Clean ..." en el Eclipse menú, se eliminará y luego generar el archivo R.java.

El problema "R no puede ser resuelto" ocurre cuando cambia su nombre del paquete en el archivo AndroidManifest.xml. Utiliza tu Android nombre del paquete para crear un subdirectorio bajo el directorio "gen", donde que almacena el archivo R.java.

Eclipse puede tener problemas de ejecución limpia, ya que está confundido acerca donde el archivo R.java es cuando se ha cambiado el paquete Android nombre. Puede cambiar el nombre del subdirectorio bajo gen para que coincida con su nuevo nombre de paquete, o se puede cambiar el nombre del paquete de nuevo a la antigua nombre. Hacer la limpieza y luego cambiar el nombre del paquete para el nuevo nombre usted quiere. Esto funciona mejor si deja de Eclipse de tratar de construir mientras que usted está cambiando el nombre del paquete. En el menú "Proyecto" desactive la opción de "Crear automáticamente" y también cuando el "Limpio ..." de diálogo preguntará si debe "Iniciar una acumulación de inmediato" desactive la casilla para que no se trate de construir mientras se está cambiando la Nombre del paquete. Después de haber cambiado el nombre puede activar "Construir Automáticamente" de nuevo.

Tenga en cuenta que si su AndroidManifest.xml nombre del paquete de archivos no coincide el nombre del paquete de Java, Eclipse terminará automáticamente la adición de una "Importar .R;" línea en todos sus archivos .java que tienen cualquier referencia a R. Si cambia de AndroidManifest.xml nombre del paquete, a veces Eclipse no actualiza todos estos añadido importaciones. Si esto sucede, utilice la refactorización de Eclipse ( Alt + Mayúsculas + R ) para cambiar la declaración de importación en uno de los archivos Java para su nuevo nombre de paquete AndroidManifest.xml. Lo mejor es hacer esto mientras que lo haya desactivado "Construir automáticamente".

R es una clase generada automáticamente que mantiene las constantes utilizadas para identificar sus recursos. Si usted no tiene un archivo R.java (sería GEN / eu.mauriziopz.gps / R.java en Eclipse con el SDK 1.5) recomendaría el cierre y reapertura de su proyecto o va a Proyecto> Construir todo (y seleccionando la opción "Crear automáticamente" si bien no según lo recomendado por Josef). Si eso no funciona, que trate de hacer un nuevo proyecto, si el problema se vuelve a crear de publicar aquí de nuevo y vamos a entrar en más detalles.

Cierre todos los archivos, proyecto de limpieza, reinicie Eclipse.

Es digno de la comprobación en AndroidManifest.xml. El package atributo tiene el valor correcto.

Esto es:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="your.correct.package.name"
   ...

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

Este error también puede ser causada por la adición de 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 de su paquete, a continuación, puede añadir una actividad para el espacio de nombres com.example.myapp.activities.

Esto producirá el error "R no puede ser resuelto".

Para fijar la importación del R en el espacio de nombres por defecto en su actividad debe ser:

import com.example.myapp.R;

Además de las sugerencias en las respuestas anteriores, asegúrese de que su objetivo Android se establece:

  1. Haga clic derecho en su proyecto
  2. Elija Propiedades
  3. Elija Android en el menú de la izquierda
  4. Marque una casilla al lado del Proyecto apropiada Build Target.
  5. Haga clic en Aplicar y Aceptar

Edit: Un año más tarde me encontré con otra causa. Tenía una imagen .jpg en mi carpeta estirable con el mismo nombre que una imagen PNG. Hacer referencia a esta imagen en mi código debe haber confundido el programa y le dio el error "R no puede ser resuelto".

Asegúrese de que ha instalado el gestor de Android SDK forma herramienta de construcción

Proyecto haga clic derecho propiedades-> Java BuildPath seleccionar Biblioteca y añadir android-support.jar la siga este paso.

Ir a Proyecto-> Propiedades-> Java Build Path que seleccionar el orden y la pestaña de exportación. Set-androide apoyo .jar biblioteca verificado y hasta en la parte superior de la lista. Y limpia y rebuild..It funciona para la mayoría de los casos

introducir descripción de la imagen aquí

acabo de tener este problema por enésima vez y se dio cuenta de lo que estaba haciendo que: He creado un archivo XML con letras mayúsculas en el nombre. Todos los nombres de los archivos XML en /res deben coincidir [a-z0-9\\._].

La solución más sencilla -. A veces sólo necesita guardar el archivo XML que estaba trabajando para conseguir la autogenerator se produzca,

Guarde el archivo (por ejemplo main.xml) a continuación, elimine el archivo R.java y ver si el R.java regenerado resuelve el problema R determinación.

R es una clase generada. Si está utilizando la Herramientas de desarrollo de Android (ADT) que se genera siempre el proyecto se construye. Es posible que tenga 'crear automáticamente' desactivada.

Comprobar los nombres de los archivos XML. Asegúrese de que todos están en minúsculas.

También asegúrese de que los nombres de recursos de imagen son también todo en minúsculas. Tenía una letra mayúscula en el nombre de mi archivo jpg, y que provocó el error no resuelto R al otro lado de mi proyecto.

Este error surgió en mi x64 instalación de Linux Mint. Resultó que el resultado fue un fracaso en el binario ADB, ya que el paquete ia32-libs no se ha instalado. Simplemente ejecutando apt-get install ia32-libs y relanzar Eclipse fija el error.

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

Comprobar # 4 y # 5 en este post: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Espero que esto ayude a alguien.

Es posible que deba actualizar / instalar herramientas de SDK. Relanzar Android SDK Manager de nuevo e instalar un nuevo elemento:. Android SDK Build-tools.one por uno de borrar, corregir cuál trabajo por usted introducir descripción de la imagen aquí

Es posible que deba actualizar las herramientas de SDK. Relanzar Android SDK Manager de nuevo e instalar un nuevo elemento: SDK de Android acumulación de herramientas.

introducir descripción de la imagen aquí

he tenido este problema también. Resultó que había borrado inadvertidamente el "APP_NAME" recurso de cadena a partir del archivo strings.xml, que estaba causando un error de silencio. Una vez que he añadido de nuevo, la clase I se generó correctamente y todo estaba de nuevo en marcha.

En primer cheque ¿hay algún error en cualquier diseño xml o no, si se resuelve primero.

En caso contrario eliminar la dependencia del proyecto JUnit y reconstruir el proyecto.

 introducir descripción de la imagen aquí

Trate de hacer que su nuevo nombre de archivo del formato XML minúsculas. Por ejemplo, utilice my_file.xml en lugar de myFile.xml.

Sin embargo, otra razón R.java podría no quedar autogenerado es si usted tiene directorios como res / dibujable-IPAP , res / dibujable-mdpi o res / dibujable -ldpi .

1.6 + parece estar bien con estos directorios, pero 1.5 no los quiere. Cuando quité esos directorios, R.java comenzó autogenerating para mí otra vez.

Sólo tienes que ir a la lista de menú de Inicio de Android. haga clic en Generar Menú, en virtud de crear, haga clic en Reconstruir Proyecto .

 introducir descripción de la imagen aquí

Yo tenía los ejemplos de Android 8 y estaba tratando de usar Android SDK 7. Al cerrar el proyecto y volvió a abrir la carpeta de la aplicación y eligió usar Android 8 SDK, que era capaz de encontrar el archivo R. Espero que esto ayude.

En mi caso, ha habido un error en mi AndroidManifest.xml. Otros han dicho que sus archivos XML deben estar libres de errores, pero yo sólo estaba buscando en el res / carpeta. Buscar y corregir tantos errores posibles y así el problema puede resolverse.

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

Si quieres 2,1 a ser el mínimo, Android 2.1 es en realidad API de nivel 7.

Usted puede ver lo que estoy hablando cuando se explora el SDK ha descargado e instalado. Navegar al lugar que ha instalado el SDK a (C:\android-sdk-windows por ejemplo) y abra la carpeta con el nombre "plataformas". Verá algo así como "android-7" aparece como una carpeta, y si se abre de que hay un archivo source.properties que, al abrirse con un editor de texto, se mostrará la versión de la plataforma correspondiente.

Cuando se crea un proyecto, y debe seleccionar un API "Build Target", la última columna de la lista denominada "Nivel API" muestra el número que busca al rellenar el ajuste MinSDK.

Este es probablemente uno de los errores más comunes que se traduce en el archivo R.java no se está creando el marco del Proyecto> Gen> nombrepaquete> R.java.

Eliminar main.out.xml. Soy nuevo en esto y aún no saben lo que este archivo se utiliza para, pero la eliminación se aclaró el problema.

Por desgracia, ninguna de las preguntas existentes ayudó. Ya que mi problema parece plataforma específica, esto sólo puede funcionar si está en Ubuntu 64 bits (actualmente estoy usando Ubuntu 12). Al principio no vi la ventana de "problemas", que ya dio a entender una solución, que en 64 bits para el Medio Ambiente que necesita las librerías 32 bits, lo que puede faltar:

  

sudo apt-get install ia32-libs

He instalado el paquete y reconstruir mi proyecto, que ha solucionado el problema para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top