R no se puede resolver a una variable

Me gustaría arreglar este error

R no se puede resolver a una variable

Busqué muchas respuestas, pero no pude encontrar la correcta; Intenté todo. ¿Podría alguien ayudarme?

Mi actividad principal que se crea automáticamente El error se muestra para las tres líneas que comienzan en el case R.id.button1: :

 package de.vogella.android.temprature1; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Toast; public class Convert extends Activity { private EditText text; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text = (EditText) findViewById(R.id.editText1); } // This method is called at button click because we assigned the name to the // "On Click property" of the button public void myClickHandler(View view) { switch (view.getId()) { case R.id.button1: RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0); RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1); if (text.getText().length() == 0) { Toast.makeText(this, "Please enter a valid number", Toast.LENGTH_LONG).show(); return; } float inputValue = Float.parseFloat(text.getText().toString()); if (celsiusButton.isChecked()) { text.setText(String.valueOf(convertFahrenheitToCelsius(inputValue))); } else { text.setText(String.valueOf(convertCelsiusToFahrenheit(inputValue))); } // Switch to the other button if (fahrenheitButton.isChecked()) { fahrenheitButton.setChecked(false); celsiusButton.setChecked(true); } else { fahrenheitButton.setChecked(true); celsiusButton.setChecked(false); } break; } } // Converts to celsius private float convertFahrenheitToCelsius(float fahrenheit) { return ((fahrenheit - 32) * 5 / 9); } // Converts to fahrenheit private float convertCelsiusToFahrenheit(float celsius) { return ((celsius * 9) / 5) + 32; } } 

mi main.xml

          

mi string.xml

   Hello World, Convert! de.vogella.android.temprature1 myClickHandler to Celsius to Farenheit Calculate  

1) ver si los archivos xml en el árbol del Explorador de paquetes tienen un icono de error si lo hacen, se corregirán los errores y se generará la clase R.

sugerencia de ejemplo: FILL_PARENT se renombró MATCH_PARENT en API Nivel 8; así que si está apuntando a la plataforma 2.1 (api 7), cambie todas las ocurrencias a “fill_parent”

2) si agregó “importar android.R;” tratando de hacer una solución rápida, eliminar esa línea

para mí, la mejor solución para sugerir a las personas que tienen problemas con el archivo “R” sería intentar los próximos pasos (el orden no importa):

  1. actualice ADT y SDK, Eclipse y Java (tanto el 1.6 como el último).

    EDITAR: ahora el ADT soporta Java 1.7. enlace aquí .

  2. elimine la carpeta gen y créela nuevamente.

  3. hacer un proyecto limpio.

  4. Haga clic derecho en el proyecto y elija android-tools -> fix-project-properties.

  5. Haga clic con el botón derecho en el proyecto y elija propiedades -> ruta de comstackción de java -> orden y exportación. asegúrese de que la orden sea:

    • Android 4.4 (siempre la última versión)

    • Librerías privadas de Android

    • dependencias de android

    • sus proyectos de biblioteca si es necesario

    • yourAppProject / gen

    • yourAppProject / src

  6. asegúrese de que todos los archivos en las subcarpetas de la carpeta res tengan nombres que estén bien: solo letras minúsculas, dígitos y guión bajo (“_”).

  7. siempre asegúrese de que targetSdk apunte a la API más reciente (actualmente 19) y configúrelo en el archivo project.properties

  8. intente ejecutar Lint y lea sus advertencias. podrían ayudarte.

  9. asegúrese de que su proyecto se comstack en 1.6 java y no en una versión diferente.

  10. reiniciar eclipse

Verifique su archivo AndroidManifest.xml, vea si el nombre del paquete es correcto. Si copió un ejemplo, es probable que esto sea incorrecto y el origen de su problema.

Yo tuve el mismo problema. No tenía ninguna línea que indicara “importar algo.R”. La limpieza y la reconstrucción tampoco resolvieron el problema.

Resultó ser por el nombre de un archivo xml de diseño. Esos archivos solo pueden contener letras minúsculas, números o guiones bajos. Cuando cambié el nombre de archivo (y todo lo que se refiere a él) de myLayout.xml a my_layout.xml, todo funcionó.

Antes de intentar cualquier otra cosa, compruebe que la statement de su paquete en su archivo AndroidManifest.xml coincida con el nombre real del paquete en la carpeta src su proyecto. Esto me ha causado este error muchas veces al crear proyectos de prueba que copio de proyectos existentes. Espero que esto te ahorre tiempo!

Además, la creación de un archivo XML con mayúsculas desencadenará este error.

Acabo de tener este problema

Fue causado porque tenía un recurso de menú redundante que hacía referencia a una cadena no existente.

Se eliminó el menú XML y regresó R.

  1. comprobar si los archivos en la carpeta res tienen algún error entonces
  2. Haga clic derecho en el proyecto -> herramientas de Android -> arreglar las propiedades del proyecto
  3. Proyecto limpio

Compruebe si el nombre del paquete en el archivo AndroidManifest.xml es el mismo que el nombre del paquete de su clase java.

P.ej. AndroidManifest.xml

  package="com.example.de.vogella.android.widget.example" 

En tu clase MyWidgetProvider.java

 package com.example.de.vogella.android.widget.example; 

Fue la causa de mi error en este ejemplo.

Si R falta

  • Ubique su archivo R.java, debe estar en la carpeta ./gen/
  • Si falta y “build project” no lo comstack, uno de sus archivos XML tiene errores, corríjalos o incluso elimínelos, luego haga clic con el botón derecho en su proyecto y haga clic en el proyecto de comstackción.
  • El archivo R.java debe generarse

Tuve este problema y resulta que esto se debió a un error en uno de mis archivos xml de diseño que acababa de cambiar

Si Clean / Rebuild Project no funciona, intente verificar el nombre de nuestro paquete en AndroidManifest.xml.

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.

Solo mire en sus archivos de encabezado:

 import somefile.R; 

Solo elimina esa línea y ya está.

Este error se debe a eliminar el archivo R.java carpeta project /gen . Si tiene una copia de seguridad de su proyecto, vaya al directorio del proyecto y pegue el archivo R.java que copia de la sección de respaldo.

El archivo corrupto R.java también puede ser causado por un error en XML. A menudo, este tipo de errores no aparecen en eclipse, por lo que sugiero echar un vistazo a sus archivos XML. Después de eso, también puede intentar Clean su proyecto yendo a Project -> Clean... en la barra de menú.

Nada de lo mencionado anteriormente funcionó para mí. Sin embargo, lo arreglé yo mismo.

Solución:

Si tiene algún otro archivo, excepto activity_main.xml / main.xml dentro de app_name/res/layout quítelo e intente limpiar y comstackr.

Nota:

Los archivos no deseados o (más bien usados ​​más adelante) dentro de app_name/res/layout serían *.out.xml . Eliminar lo mismo.

Todas las sugerencias anteriores deberían funcionar normalmente, si todavía tienes problemas sospecho que estás usando un sistema operativo de 64 bits y ADT está buscando binarios de 32 bits

intente ejecutar debajo del comando en la terminal y limpiar el proyecto una vez

 sudo apt-get install ia32-libs 

Acabo de tener este error en mi primera aplicación para Android de Hello World (3-Nov-2013).

Junto con algunos consejos de otros usuarios, esto es lo que tenía que hacer:

Control + Shift + O

Elimine la importación * .R de la parte superior del archivo .java de la actividad principal

Guarde el archivo, limpie y compile el proyecto (generalmente la comstackción es automática)

Ejecute el Administrador de SDK, habilite las herramientas de comstackción si aún no está marcado y presione Actualizar independientemente

Cierre y vuelva a abrir Eclipse y el problema desapareció

  • Reconstruir
  • Limpiar (Menú -> Proyecto -> Limpiar)
  • Elimine su importación de.vogella.android.temprature1.R;

Si aún no lo has hecho, intenta limpiar tu proyecto como ya se sugirió. En Eclipse Indigo, este es Proyecto -> Limpiar … -> (Asegúrate de que tus proyectos estén marcados) -> OK. Después de eso, haz clic derecho en tu proyecto y elige “Actualizar”.

Si esto sigue siendo un problema, algunas preguntas:

  1. ¿Cambió recientemente el nombre del paquete de su aplicación en AndroidManifest.xml?
  2. ¿El nodo de “actividad” en su AndroidManifest.xml que describe la clase “Convertir” especifica un paquete / nombre que no se puede resolver naturalmente con el de su aplicación? Por ejemplo, si su aplicación es com.foo.bar y su actividad se describe como com.foobar.Convert, R. * no funcionará automágicamente. Debería incluir explícitamente R para el paquete correcto.

Consejo: actualice el SDK y todas las utilidades otra vez. Me ayudó.

¡Tan muchas soluciones posibles diferentes! Para mí, encontré que Eclipse había creado el archivo defectuoso en el paquete incorrecto. Lo arreglé moviéndolo al mismo paquete que el archivo R.java.

He visto muchas respuestas que sugieren “corregir errores en sus archivos XML”, pero solo da consejos generales sobre cómo arreglar el XML.

Aquí hay una forma sistemática de encontrar los errores XML:

Mire la pestaña “Problemas” en Eclipse. Ignore todo “R no puede resolverse en una variable”. Mira lo que queda. Para mí, se ve algo como esto:

 Unparsed aapt error(s)! Check the console for output. 

Cito de http://developer.android.com/tools/building/index.html#detailed-build :

La herramienta de empaquetado de activos de Android (aapt) toma los archivos de recursos de su aplicación, como el archivo AndroidManifest.xml y los archivos XML para sus actividades, y los comstack. También se produce un R.java para que pueda hacer referencia a sus recursos desde su código Java.

Ahora abre la pestaña “Consola”. Ventana -> Mostrar vista> Consola

Esto debería mostrar el error exacto, en qué archivo ocurrió y en qué número de línea:

 [2014-05-13 08:27:05 - MyFirstApp] /Users/alain/code/experimental/android/adt_workspace4.4/MyFirstApp/res/menu/main_activity_actions.xml:4: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/ic_action_search'). [2014-05-13 08:27:05 - MyFirstApp] /Users/alain/code/experimental/android/adt_workspace4.4/MyFirstApp/res/menu/main_activity_actions.xml:4: error: Error: No resource found that matches the given name (at 'title' with value '@string/action_search'). 

En mi caso, el primer error es porque me estoy refiriendo a ic_action_search pero aún no he puesto ic_action_search.png en mis directorios res / drawable- * dpi. El segundo error es porque estoy haciendo referencia a una cadena “action_search” pero aún no lo he definido en res / values ​​/ strings.xml

Hubiera sido bueno si el complemento ADT realmente te llevó a la línea y el archivo donde está el error si haces clic en el error en la salida de la consola, pero por ahora, tienes que hacerlo manualmente.

El problema con Eclipse es que no detiene la construcción cuando aapt falla, sino que continúa hasta la siguiente etapa de la comstackción, que es el comstackdor de Java. Las herramientas de línea de comandos no tienen este problema:

Para generar build.xml:

 $ android list targets 

Para mí, tengo:

 Objetivos Android disponibles:
 ----------
 id: 1 o "android-16"
      Nombre: Android 4.1.2
      Tipo: Plataforma
      Nivel de API: 16
      Revisión: 4
      Máscaras: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (predeterminado), WVGA854, WXGA720, WXGA800, WXGA800-7in
  Etiqueta / ABI: predeterminado / armeabi-v7a, predeterminado / mips, predeterminado / x86
 ----------
 id: 2 o "android-19"
      Nombre: Android 4.4.2
      Tipo: Plataforma
      Nivel de API: 19
      Revisión: 3
      Máscaras: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (predeterminado), WVGA854, WXGA720, WXGA800, WXGA800-7in
  Etiqueta / ABI: por defecto / armeabi-v7a

Elige tu objective de la lista anterior y úsalo en el siguiente comando:

 $ android update project --target  --path /path/to/android/project 

Ahora que se genera build.xml, puedes construir tu proyecto usando uno de estos:

 $ ant debug $ ant -verbose debug $ ant -debug debug 

Si la comstackción falla en la etapa áapt, no genera correctamente R.java, pero tampoco continúa correctamente en la etapa de comstackción de Java. La salida de la consola le mostrará (al igual que en la vista de la consola Eclipse) los nombres de los archivos y líneas donde están sus errores XML.

y aquí está cómo activar los números de línea en Eclipse:

http://www.mkyong.com/eclipse/how-to-display-line-numbers-in-eclipse/

 Preferences -> General -> Editors -> Text Editors -> [x] Show line numbers 

Solución simple:

Compruebe si en gen [archivos Java generados], en su paquete de proyecto, hay un archivo R.java.

Si no,

  1. Hay algunos errores en los archivos xml que ha agregado o modificado. revisa eso profundamente Arregle todas las pelusas amarillas y revise el registro de errores y la consola
  2. Verifique que sus archivos xml sean letra pequeña, ‘_’ y dígitos.
  3. Compruebe que los nombres de las imágenes que ha agregado también sean letras pequeñas, ‘_’ y dígitos.
  4. Limpia el proyecto.
  5. Verifique R.java creado. En caso afirmativo, y todavía se produce un error, siga las instrucciones sí a continuación, de lo contrario revise xmls una vez más

En caso afirmativo,

  1. reemplace ‘import android.R’ por su paquete de proyecto. R ej: ‘com.mysmallapp.main.R’ en todos los archivos.
  2. Limpia el proyecto

Tuve el mismo problema y la razón principal por la que R.java no se volvió a generar son los errores en cualquiera de los archivos del proyecto. Una vez que arreglemos esos, se debe generar R.java.

Yo tuve el mismo problema. Lo soluciono borrando el archivo en el directorio ‘gen’, luego limpio el proyecto y luego R.java se generó automáticamente.

Soy nuevo en el desarrollo de Android. Tuve el mismo problema y giró en torno a este hilo durante aproximadamente una semana. Resultó que a medida que descarga los últimos SDK de Android como API 23 que se lanzó recientemente, o si actualiza las herramientas de comstackción, debe modificar el archivo build.gradle en Gradle Scripts si no se actualiza. Se encuentra en la carpeta de aplicaciones de su directorio de proyectos. Puede abrir este archivo con el bloc de notas. Mi archivo ahora se ve así.

  apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.0" defaultConfig { applicationId "com.example.sukhwinder.justjava" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile 'com.android.support:appcompat-v7:23.+' compile fileTree(dir: 'libs', include: ['*.jar']) } 

Asegúrese de que compileSdkVersion , buildToolsVersion y targetSdkVersion coincidan con la versión más reciente de Android SDK y las herramientas de comstackción instaladas en su máquina.

He vivido con este problema durante 2 semanas y hoy encuentro la solución que es “icrease ( MINIMO SDK REQUERIDO ) al máximo posible”

Hago mis proyectos en FlashBuilder 4.7 y gerena una fila en strings.xml:

Configuraciones

Una vez que lo borré, obtuve los mismos errores. Cuando lo devolvió en su lugar, todo funcionó de nuevo.

que lo hizo por mi …

cuando revisé el archivo de propiedades de mi proyecto ( /project_root/project.properties ), tenía una referencia a un destino antiguo de la versión de Android que ya no tenía instalado

 # Project target. target=android-15 

tan pronto como cambié esto para decir 17, funcionó perfectamente, tan pronto como se guardó el archivo, mis carpetas gen se construyeron e inflaron.

 # Project target. target=android-17 
 import com.de.vogella.android.temprature1.R;