Acabo de descargar e instalar el nuevo SDK de Android. 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 linea
setContentView(R.layout.main);
¿Por qué?
PD: Tengo un archivo XML denominado main.xml
bajo res/layout/
.
android
eclipse
compiler-errors
android-resources
android-sdk-tools
Maurizio Pozzobon
fuente
fuente
Respuestas:
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
Mientras revisaba los tutoriales de muestra de Android, a menudo usaba el comando Ctrl+ Shift+ Opara "Organizar importaciones" y generar cualquier declaración de importación faltante. A veces, esto generaría una declaración de importación incorrecta que ocultaría la
R.java
clase que se genera automáticamente cuando compila.fuente
Cada vez que tuve un problema con R no generado, o incluso desaparecido, esto se debió a algún problema en el archivo de diseño XML que impidió que se construyera la aplicación.
fuente
android:icon="@drawable/XXX"
declaración en un<item>
recurso de menú, pero no había un garabato rojo que indicara que no se encontró el recurso extraíble XXX. En otros casos,"@drawable/YYY"
se marcó cuando no se encontró YYY, pero no en este caso. Por alguna razón.Cada vez que consigues
luego verifique el
/res
directorio y debe haber algún archivo que tenga algún error y que impida que se cree la aplicación. Por ejemplo, puede ser un archivo de diseño o puede ser debido a que falta un 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 cumplen con las convenciones de nomenclatura de archivos (puede contener solo [a-z0-9_.]), Es posible que la clase R.java no se genere, causando la cadena de eventos a la que se refieren todas las otras publicaciones. ¡Espero eso ayude!
fuente
Mira tus importaciones. Lo más probable es que la línea:
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 que se genera automáticamente desde su carpeta / res /.
fuente
Y otra cosa que puede causar este problema:
Instalé el nuevo ADT (v. 22). Dejó de crear la
gen
carpeta que incluyeR.java
. La solución también fue instalar las nuevas herramientas de compilación del SDK de Android desde el Administrador del SDK de Android.Solución encontrada aquí
fuente
R.java
es un archivo que los complementos Eclipse de Android crean al compilar 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ú Eclipse, eliminará y luego regenerará elR.java
archivo.El problema "R no se puede resolver" ocurre cuando cambia el nombre del paquete en el
AndroidManifest.xml
archivo. Utiliza el nombre de su paquete de Android para crear un subdirectorio en el directorio "gen" donde almacena elR.java
archivo.Eclipse puede tener problemas para ejecutar clean, porque no está
R.java
seguro de dónde está el archivo cuando ha cambiado el nombre del paquete de Android. Puede cambiar el nombre del subdirectoriogen
para que coincida con el nuevo nombre del paquete, o puede cambiar el nombre del paquete nuevamente al antiguo. Realice la limpieza y luego cambie el nombre del paquete al nuevo nombre que desee. Esto funciona mejor si evita que Eclipse intente compilar mientras cambia el nombre del paquete. Debajo del menú "Proyecto", desmarque la opción "Construir automáticamente" y también cuando el cuadro de diálogo "Limpiar ..." le pregunte si debería "Iniciar una compilación inmediatamente", desmarque la casilla para que no intente compilar mientras está cambiando El nombre del paquete. Después de haber cambiado el nombre, puede volver a activar "Construir automáticamente".Tenga en cuenta que si el
AndroidManifest.xml
nombre de su paquete de archivos no coincide con el nombre de su paquete de Java, Eclipse terminará agregando automáticamente un "import <su nombre de paquete de Android> .R;" alinee todos sus.java
archivos que tengan alguna referencia a R. Si cambia elAndroidManifest.xml
nombre de su paquete, 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 nuevoAndroidManifest.xml
nombre de paquete. Es mejor hacer esto mientras ha deshabilitado "Construir automáticamente".fuente
import com.example.main.package.name.R;
Lo que dijo Will era correcto
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 si no existiera para Eclipse, por lo que no compiló el
R.java
archivo.Por lo tanto, modificar el permiso y seleccionar "Construir automáticamente" resolvió el problema.
fuente
cd $ANDROID_SDK_ROOT/build-tools/<version>
. A continuación,chmod a+x
en archivos comoaapt
,aidl
,dexdump
,dx
, etc.ANDROID_SDK_ROOT
deberían fijarse en su entorno, y que apunten a su instalación del SDK. Por ejemplo,/opt/android-sdk
. Es importante establecer ambosANDROID_SDK_ROOT
yANDROID_NDK_ROOT
porque las herramientas de Android los usan internamente. Ver el directorio recomendado de NDK en la lista de usuarios de NDK.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 1.5 SDK), recomendaría cerrar y volver a abrir su proyecto o ir a Proyecto> Construir todo (y seleccionando "Construir automáticamente" mientras esté recomendado por Josef). Si eso no funciona, intente hacer un nuevo proyecto, si el problema se recrea, publique aquí nuevamente y entraremos en más detalles.
fuente
Cierre todos los archivos, limpie el proyecto, reinicie Eclipse.
fuente
Vale la pena registrarse
AndroidManifest.xml
. El atributopackage
tiene el valor correcto.Es decir:
Después de cambiar eso,
R.java
se volverá a generar.fuente
Este error también puede ser causado al agregar 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 alcom.example.myapp.activities
espacio de nombres.Esto producirá el error "R no se puede resolver".
Para arreglar la importación, la R en el espacio de nombres predeterminado en su actividad debe ser:
fuente
Junto con las excelentes sugerencias en las respuestas anteriores, asegúrese de que su objetivo Android esté configurado:
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 programa y dio el error "R no se puede resolver".
fuente
Asegúrese de haber instalado la herramienta de compilación de Android desde el administrador de SDK
haga clic con el botón derecho en propiedades-> Java BuildPath seleccione Biblioteca y agregue android-support.jar, siga estos pasos.
Vaya a Proyecto-> Propiedades-> Ruta de compilación de Java que seleccione la pestaña Ordenar y exportar. Establezca la biblioteca .jar de Android-support marcada y suba al principio de la lista. Y limpiar y reconstruir ... Funciona para la mayoría de los casos
fuente
Acabo de tener este problema por ené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
/res
deben coincidir[a-z0-9\\._]
.fuente
La solución más simple: a veces solo necesita guardar el archivo XML en el que estaba trabajando para que el generador automático se active.
Guarde el archivo (por ejemplo, main.xml), luego elimine el archivo R.java y vea si la R.java regenerada resuelve el problema de resolución R.
fuente
Verifique 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 los 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 R sin resolver en todo mi proyecto.
fuente
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 haya desactivado 'Construir automáticamente'.fuente
Este error surgió en mi instalación de Linux Mint x64. Resultó que el resultado fue una falla en el
ADB
binario, porque elia32-libs
paquete no estaba instalado. Simplemente ejecutandoapt-get install ia32-libs
y relanzando Eclipse corrigió el error.Si su distribución x64 no tiene ia32-libs, tendrá que ir a Multiarch.
Marque # 4 y # 5 en esta publicación: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883
Espero que esto ayude a alguien.
fuente
Es posible que deba actualizar / instalar las herramientas del SDK. Vuelva a iniciar Android SDK Manager e instale un nuevo elemento: Android SDK Build-tools.one por una eliminación, arregle cuál funciona para usted.
fuente
Es posible que deba actualizar las herramientas del SDK. Vuelva a iniciar Android SDK Manager e instale un nuevo elemento: Android SDK Build-tools.
fuente
Yo tuve este problema también. Resultó que había eliminado accidentalmente el recurso de cadena "nombre_aplicación" del
strings.xml
archivo, lo que estaba causando un error silencioso. Una vez que lo agregué nuevamente, la clase R se generó con éxito y todo volvió a funcionar.fuente
Intente que su nuevo nombre de archivo de diseño XML sea minúscula. Por ejemplo, use en
my_file.xml
lugar demyFile.xml
.fuente
Sin embargo, otra razón
R.java
podría no generarse automáticamente 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 eliminé esos directorios,
R.java
comencé a generar automáticamente para mí nuevamente.fuente
Primero verifique si hay algún error en cualquier diseño xml o no, si luego resuélvelo primero.
De lo contrario, elimine la dependencia junit del proyecto y reconstruya el proyecto.
fuente
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 qué estoy hablando cuando navega por el SDK que descargó e instaló. Navegue hasta el lugar donde instaló el SDK (
C:\android-sdk-windows
por ejemplo) y abra la carpeta llamada "plataformas". Verá algo como "android-7" listado como una carpeta, y si abre, hay unsource.properties
archivo que, cuando se abre con un editor de texto, le mostrará la versión de plataforma correspondiente.Cuando crea un proyecto y debe seleccionar una API "Build Target", la última columna de esa lista llamada "Nivel API" muestra el número que está buscando al completar la configuración MinSDK.
Este es probablemente uno de los errores más comunes que hace que el
R.java
archivo no se cree en Proyecto> gen> nombre del paquete> R.java.fuente
Remover
main.out.xml
. Soy nuevo en esto y todavía no sé para qué se usa este archivo, pero eliminarlo solucionó el problema.fuente
Simplemente vaya a la lista del menú superior de Android. haga clic en Crear menú, en Construir, haga clic en Reconstruir proyecto .
fuente
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.
fuente
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 repare la mayor cantidad de errores posibles y el problema bien puede resolverse por sí solo.fuente
En caso de que alguien esté interesado (podría estar salvando su vida aquí), tuve el error,
R.xml
no se puede resolver, un poco diferente en un proyecto GLS. Hmmmm Después de buscarR.java
, encontré una clase autogeneradaXML.java
, (creo) que no estaba allí.¿Solución? Necesitaba una nueva carpeta en
res
:res\xml
y un archivo llamadodefault_values.xml
allí. Entonces todo estuvo bien.En caso de que no tenga ese archivo, es:
fuente