Android Studio marca R en rojo con el mensaje de error "no se puede resolver el símbolo R", pero la generación tiene éxito

En todos los proyectos que he intentado crear en Android Studio, todos los usos de R están marcados en rojo con el mensaje de error "no se puede resolver el símbolo R", pero la compilación tiene éxito y la aplicación se ejecuta. Esto es realmente molesto, ya que bloquea la auto-finalización y muestra enormes líneas onduladas rojas en todo mi código.

Estoy ejecutando Android Studio 1.7.0 y la creación del proyecto con la configuración predeterminada. Se adjunta una captura de pantalla:

Android Studio Captura de pantalla

Este es mi build.gradle :

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 7 targetSdkVersion 16 } } 

Así es como se ve la estructura del proyecto:

Introduzca aquí la descripción de la imagen

¿Algúna idea de cómo arreglar esto?

Simplemente haga clic en Build -> Rebuild Project en su Android Studio.

Encontré que este problema fue causado porque tenía errores en mis archivos de XML. Una vez que arreglar los errores XML, hacer una limpieza / construir, se arregló el problema.

Haga clic en Build -> Rebuild Project y luego haga clic en Tools -> Android -> Sync Project with Gradle Files .

Asegúrese de que en su AndroidManifest.xml el nombre del paquete es correcto. Eso arregló el problema para mí cuando mi R.whatever fue marcado rojo!

También recomendaría comprobar todos sus archivos gradle para asegurarse de que los nombres de los paquetes son correctos. Eso no debe hacer todo rojo, pero se detendrá su gradle archivos de sincronización correctamente.

  1. Seleccione la opción de menú Archivo> Estructura del proyecto.
  2. Presione Aceptar en el cuadro de mensaje (cambios de estructura de proyecto no actualizar build.gradle).
  3. Seleccione "Módulos" en el panel lateral "Configuración del proyecto".
  4. Para cada módulo (proyecto), compruebe que la sección "Excluded Folders" no contiene la carpeta "build". Si lo hacen, presione el botón 'x' junto a la carpeta "build".
  5. presiona OK

Ahora debería ver la carpeta "MyAppProject / MyApp / build / source". Esto debe contener la carpeta "r" (donde se genera el archivo R.java). Aquí, debería ver "depurar", "liberar" en azul (si tiene un projectFlavour en su build.gradle, estos estarán en la carpeta ""). Dentro de esa carpeta debug / release debe ser el nombre del paquete de su aplicación y luego un archivo R.java que contiene todos sus ids de recursos.

Por algunas razones, el estudio de Android utiliza configuraciones diferentes para el editor y para el compilador. Si funciona para el compilador, entonces es bueno. Si no funciona para el editor. (Ve archivos no resueltos).

Necesita agregar algunos directorios al origen de su proyecto. Por ejemplo, todos los recursos deben estar marcados como "fuente".

Archivo-> Estructura del proyecto

Seleccione "Módulos", luego su proyecto. Y seleccione la pestaña sources . A la derecha, busque su directorio de recursos y haga clic en el botón "fuente" azul. Cierra todo y debería funcionar.

Además, usted tendrá que asegurarse de que

build/source/r/debug es también una fuente. En Tengo todos mis build/source/*/debug marcados como fuente.

Módulo principal .iml

 <?xml version="1.0" encoding="UTF-8"?> <module external.system.id="GRADLE" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android" name="Android"> <configuration> <option name="SELECTED_BUILD_VARIANT" value="debug" /> <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> <option name="ALLOW_USER_CONFIGURATION" value="false" /> <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" /> <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" /> <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" /> </configuration> </facet> <facet type="android-gradle" name="Android-Gradle"> <configuration> <option name="GRADLE_PROJECT_PATH" value=":SherlockHolmes" /> </configuration> </facet> </component> <component name="NewModuleRootManager" inherit-compiler-output="true"> <exclude-output /> <content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/build/source/r/debug" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/build/source/aidl/debug" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/build/source/rs/debug" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/debug" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/build/res/rs/debug" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/build/source/r/test" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/build/source/aidl/test" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/build/source/rs/test" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/test" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/build/res/rs/test" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/res" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/res" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/aidl" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/assets" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/jni" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/rs" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/res" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/resources" isTestSource="true" /> <excludeFolder url="file://$MODULE_DIR$/build/apk" /> <excludeFolder url="file://$MODULE_DIR$/build/assets" /> <excludeFolder url="file://$MODULE_DIR$/build/bundles" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> <excludeFolder url="file://$MODULE_DIR$/build/exploded-bundles" /> <excludeFolder url="file://$MODULE_DIR$/build/incremental" /> <excludeFolder url="file://$MODULE_DIR$/build/libs" /> <excludeFolder url="file://$MODULE_DIR$/build/manifests" /> <excludeFolder url="file://$MODULE_DIR$/build/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <orderEntry type="jdk" jdkName="Android 4.2.2" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" name="Sherlock.aar" level="project" /> <orderEntry type="library" name="SlidingMenu.aar" level="project" /> <orderEntry type="library" name="support-v4-13.0.0" level="project" /> </component> </module> 

Proyecto iml

 <?xml version="1.0" encoding="UTF-8"?> <module external.system.id="GRADLE" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> <option name="GRADLE_PROJECT_PATH" value=":" /> </configuration> </facet> </component> <component name="NewModuleRootManager" inherit-compiler-output="true"> <exclude-output /> <content url="file://$MODULE_DIR$"> <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build" /> </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component> </module> 

Magia negra

No estoy seguro de esto, pero lo oí trabajar mientras estoy bastante seguro de que no debería cambiar nada. Pruebe a compilar y guardar el proyecto después de comentar todas las líneas que requieren R Entonces cuando todo no es rojo. Intente agregarlos de nuevo. Lo extraño es que tu compilación / fuente no se genera.

También esta pregunta sugiere la comprobación "compilador uso externo construir"

Android Studio no genera R.java para mi proyecto de importación

Nota lateral

También asegúrese de que en su código java no hay. import android.r; Por lo que has mostrado, todo parece bien. Simplemente extraño que la construcción / fuente no se está creando. Por ejemplo, no tengo build / apk. Puede ser que esté en modo de liberación y no cree esos directorios.

Esta es mi solución temporal hasta encontrar una mejor:

  1. Utilizando Todo, encuentre donde se crea R.java. En mi caso fue C:\Program Files (x86)\Android\android-studio\system\compiler\<project-name>.cb969c52\.generated\aapt\<module-name>.6badd9a4\production\com\<project-name>\<module-name>

  2. En la vista Proyecto, haga clic en el módulo y presione F4. Ignore la advertencia.

  3. Haga clic en "Agregar raíz de contenido" y seleccione la carpeta mencionada anteriormente. Asegúrese de que está marcado en azul (como fuente).

Después de hacer esto, de repente todas las advertencias se han ido. El problema es que si usted colabora con otras personas, el nombre de la carpeta es diferente en cada máquina así que tenga cuidado al sincronizar.

  1. Reconstruya el proyecto.
  2. Si (1) no funciona, reinicie Android Studio / Eclipse.

Si ninguno funciona, compruebe todos sus archivos xml. Este error se produce cuando el archivo xml es incorrecto.

Esto funcionó para mí:

  1. Cierre y vuelva a abrir el proyecto

  2. Pulse "Proyecto de sincronización con el archivo Gradle" (está al lado del icono del administrador de AVD en el menú superior) repita 1-2 si Gradle no pudo sincronizar por primera vez. (La mina funcionó en segunda vez).

Trabajó con Android Studio 1.2.2

Tuve este error hace unos días, traté de mirar alrededor hasta que decidí volver a instalar Android Studio. Funcionó para mí.

Usted necesita IMPORTAR su archivo del proyecto R

 import <YOUR-PROJECT-PACKGENAME>.R; 

Al crear un proyecto a partir de una muestra, mientras que no importar el proyecto existente es bueno (evita conflictos con gradle, .idea, .iml, build, jars y apks, es decir, todos los archivos generados por generar innecesarios), después de crear un nuevo proyecto, copiar Y pegando todos los recursos relevantes, yo recomendaría:

Comprobación de paquetes e importaciones de paquetes dentro del proyecto {Declaración de AndroidManifest y todas las importaciones en clases java}, todos los recursos (drawable, mip-map, layouts y menús & your build.gradle (una muestra de build.gradle para usar con la última sdk Pueden ser proporcionados en la petición)) para ver si están allí y si las cadenas y los id declarados existen realmente y se han utilizado, después de lo cual su único error debe ser la pregunta:

Bulid-> Proyecto Limpio

Herramientas-> Android-> Proyecto de sincronización con archivos Gradle

Archivo-> Invalidar cachés y reiniciar

En los peores casos reiniciar su máquina ayuda.

Lo anterior debería funcionar. Siéntase libre de hacer preguntas si es necesario, es decir, enviar comentarios.

Sólo tienes que ir a la lista de Android Top menú. Haga clic en Construir Menú, en bajo Construir haga clic en Reconstruir Proyecto .

Introduzca aquí la descripción de la imagen

Esto causa principalmente debido a errores en el archivo xml, compruebe sus últimos cambios xml y reconstruir, el mismo problema conmigo.

También ha funcionado para mí al hacer la limpieza manual de la carpeta .idea / libraries y hacer clic después en "Proyecto de sincronización con archivos Gradle" resuelve el problema. Al parecer esta sincronización no quita elementos, pero guarda los viejos y agrega los actuales. Probablemente un error para informar 🙂

Tenía el mismo problema con el estudio de Android, descubrí que build / generated / source / r contenía sólo la carpeta de la versión y no depurar. Así que por alguna razón la compilación de depuración no generó clase R utilizable.

Lo solucioné abriendo el archivo iml del proyecto y arreglando esta línea

 <option name="RES_FOLDERS_RELATIVE_PATH" value="" /> 

a

 <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" /> 

Resynced con gradle, líneas comentadas usando R, ejecutar depurar para generar el R, uncommented líneas usando R y ejecutar el depuración de nuevo, fijo.

La solución es simple:

Vaya a File > Project Structure > app y seleccione la pestaña Flavours , seleccione API 21: Android 5.0 (Lollipop) en la lista desplegable para la Min Sdk Version .

Limpiar el Proyecto ayudó en mi caso

Ir

 Build -> Clean Project 

Este error me ocurre porque hay una entrada no válida en mi archivo activity_main.xml.

Cuando intenta construir o limpiar su proyecto verá mensajes de error .

Resolví el mío leyendo esos mensajes de error , corregir lo que está mal en mi archivo xml. Luego reconstruir el proyecto .

Si recibe este error, limpie su proyecto.

  1. Ir a construir en la parte superior de su estudio de Android
  2. Elija la opción clean project

La razón detrás de esto es que por la limpieza de su archivo .apk anterior que está presente en su carpeta de proyecto de estudio de Android en su sistema se elimina.

Me encontré con el mismo error, resulta que el archivo de manifiesto tenía algunos errores. Después de arreglarlo, hizo clic en Make Project de nuevo, funcionó bien. El estudio de Android a veces no ofrece mensajes de error muy útiles.

Me mordió por esto de vez en cuando y hay otra cosa que intentar: igualar sus versiones compileSdk y buildSdk a las últimas disponibles.

Había cambiado mi compileSdkVersion de 21 de nuevo a 19 porque el depurador de Android Studio (1.1 canary channel) no estaba rastreando correctamente en bibliotecas pre-construidas. Encontré que parecía estar rastreando basado en buildToolsVersion (19.1.0), que verifiqué haciendo clic en un error en el rastreo de pila (y luego eligiendo 19 en lugar de 21). Aunque lo he cambiado directamente en el archivo build.gradle, un tutorial gráfico está aquí: https://www.blogger.com/comment.g?blogID=4722727826918942842&postID=3875998513888772255 y resumiré:

  1. Android Studio IDE, seleccione Archivo | Estructura del proyecto.
  2. Elige tu módulo, como "app"
  3. En el campo Compilar SDK, elija la última versión
  4. También elige la última versión en Herramientas de compilación

Confirme y el proyecto debe sincronizarse automáticamente correctamente.

La lección que estoy recibiendo de esto es que ambos deben ser los mismos.

Para mí tuve este problema después de haber cambiado el nombre de uno de mis recursos crudos de extra a extra.jet , entonces todos los R convirtió en rojo y no se construiría. He intentado todas las soluciones anteriores y nada funcionó, entonces he intentado hacer otra copia de ella con el nombre original extra y eliminado de dentro de android estudio, a continuación, R s volvió a la normalidad y la construcción tuvo éxito.

En mi caso, he seguido todas las respuestas que pude encontrar en Stackoverflow y ninguno de ellos parecía resolver este problema. Todas las respuestas apuntan a una posible corrupción de archivos xml o conflictos con los nombres de Gradle. Algunas respuestas afirmaron que sería necesario limpiar el proyecto o los proyectos de Sync Project con Gradle. Ninguna de estas soluciones resolvería el problema. Además, una vez que estaba siguiendo un tutorial sobre cómo construir una aplicación Hello World y simplemente seguí las ventanas del asistente de Android Studio sin ningún tipo de codificación, no tendría sentido sospechar que se trataba de un error tipográfico como este.

TLDR

El problema resultó ser la versión Build Tools. My se estableció en 23.0.0 rc1 , por lo que se cambió a 22.0.1 . Supongo que fue porque estoy usando la última versión disponible de Android disponible.

Para cambiar este valor, puede abrir el navegador de proyectos en la ventana izquierda> haga clic con el botón derecho del ratón en "app> Open Module Setting" y busque en la "ficha Properties"

Tuve el mismo problema al utilizar los archivos de ejercicio de un sitio web de capacitación y trató de resolver el problema mediante la desinstalación de android estudio y la eliminación de todos los directorios asociados y volver a instalar, pero esto no produjo ningún resultado. Sin embargo, me di cuenta de que el tutorial i estaba viendo almacenado sus archivos de ejercicio en el escritorio, mientras que el mío estaba en una carpeta en mi directorio de descarga, así que simplemente copió todos los archivos de ejercicio a mi escritorio, Esto hizo que mi estructura de carpetas de ejercicio idéntica a la del tutorial creador y esto hizo el truco.

En la mayoría de los casos, hay algunos problemas con sus recursos, es decir, diseños, estilos, etc. así que trate de encontrar y solucionar el problema en sus recursos y luego limpiar su proyecto.

La mejor manera de resolver este problema es reiniciar su Android Studio. Si no desea reiniciar, haga clic en Build -> Clean Project .

Tuve este problema también. Eliminé las imágenes extra de la carpeta de dibujo de mi proyecto.

Este problema se produce cuando cambia el nombre del nombre del paquete . Después de cambiar el nombre del paquete, debe cambiar el nombre antiguo del paquete por el más nuevo .

Para mí resolvió el problema una vez que cambié eso.

Después de eso, puede obtener errores en los archivos xml , que también hay que cambiar el nombre del paquete. Eso es.

El problema es que R es un archivo pojo generado cuando se construye el proyecto y consiste en referencias a recursos en el directorio res como cadenas, dibujables (iconos o imágenes) xml layouts etc. Puede que le resulte interesante leer la R. Java aunque puede que tenga que salir de android studio para hacerlo. Puede resultarle útil ignorar este tipo de error, porque al compilar y construirlo desaparecerá.

Lo que no se debe hacer es importar el archivo R

  • Error en la ejecución de la tarea: app: compileDebugJavaWithJavac
  • Android Gradle Lee el nombre de la aplicación de strings.xml
  • Gradle build Javadoc tarea falla con 'etiqueta desconocida: attr'
  • Tarea de Gradle de Android para copiar archivos después de la compilación
  • Android Gradle - Añadir packageNameSuffix en producto específicoFlavor
  • No se pudo obtener propiedad desconocida 'processReleaseGoogleServices'
  • Error de script de compilación, método de DSL de Gradle sin soporte encontrado: 'release ()'! Cuando se aplicó a 0,5,1
  • java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV14 al actualizar a appcompat v23 - Android Studio
  • Ejecutar gradle -v devuelve "JAVA_HOME está establecido en un directorio no válido" aunque tenga un JAVA_HOME válido
  • Creación de una aplicación para Android con Jenkins
  • Gradle Javadoc tarea sin advertencias
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.