tools - update gradle android studio 3
Android Studio marca R en rojo con el mensaje de error "no se puede resolver el símbolo R", pero la creación tiene éxito (30)
En cada proyecto que he intentado crear en Android Studio, todos los usos de R se marcan en rojo con el mensaje de error "no se puede resolver el símbolo R", pero la compilación se ejecuta correctamente y la aplicación se ejecuta. Esto es realmente molesto, ya que bloquea la finalización automática y muestra enormes líneas onduladas rojas en todo mi código.
Estoy ejecutando Android Studio 1.7.0 y estoy creando el proyecto con la configuración predeterminada. Se adjunta una 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:
¿Algúna idea de cómo arreglar esto?
- Reconstruye el proyecto.
- Si (1) no funciona, reinicie Android Studio / Eclipse.
Si ninguno de los dos funciona, verifique todos sus archivos xml. Este error ocurre cuando su archivo xml es incorrecto.
- Seleccione la opción de menú Archivo> Estructura del proyecto.
- Presione Aceptar en el cuadro de mensaje (los cambios en la Estructura del proyecto no actualizan build.gradle).
- Seleccione "Módulos" en el panel lateral "Configuración del proyecto".
- Para cada módulo (proyecto), verifique que la sección "Carpetas excluidas" no contenga la carpeta "compilar". Si lo hacen, presione el botón ''x'' al lado de la carpeta "compilar".
- presiona OK
Ahora debería ver la carpeta "MyAppProject / MyApp / build / source". Esto debería contener la carpeta "r" (donde se genera el archivo R.java). Aquí, debe ver "depurar", "liberar" en azul (si tiene ProjectFlavour en su build.gradle, estos estarán debajo de la carpeta ""). Dentro de esa carpeta de depuración / liberación debe ser el nombre del paquete de su aplicación y luego un archivo R.java que contenga todos sus identificadores de recursos.
A veces, estos errores de compilación continuarán de la nada. Si esto le sucede a usted, intente esto:
Vuelva a verificar la validez del XML en sus archivos de recursos: si su archivo R.java no se generó para la última compilación, verá errores en su proyecto siempre que haga referencia a un recurso. Esto puede ser causado por un error tipográfico en uno de sus archivos XML. Layout XML no siempre se valida, por lo que los errores tipográficos en estos archivos pueden no ser notoriamente señalados a su atención. Encontrar el error tipográfico y guardar el archivo debería hacer que R.java se regenere.
¡Limpia tu proyecto! Select Build → Clean Project
Esto reconstruirá el proyecto desde cero, lo que puede generar una compilación sin errores.
¡Sincronice su proyecto con Gradle! Select Tools → Android → Sync Project with Gradle Files
Android Studio reconstruirá el proyecto desde cero con la configuración correcta del proyecto, lo que puede ayudar a resolver problemas después de cambiar la configuración de Gradle.
¡Ejecuta Android Lint! Lint puede darle buena información con respecto a un problema. Si lo anterior no funciona, es aquí donde probablemente encuentre su problema. Para ejecutar Lint, select Analyze → Inspect Code → select Whole project → OK
Analice cuidadosamente las sugerencias de Lint; Comience con errores y luego advertencias.
Buena suerte.
Al crear un proyecto a partir de una muestra, aunque no se está importando, el proyecto existente es bueno (evita conflictos con gradle, .idea, .iml, compilación, jar y apk, es decir, todos los archivos generados innecesarios), después de crear un nuevo proyecto, copiar y pegando todos los recursos relevantes, recomendaría:
comprobación de paquetes e importaciones desde paquetes dentro del proyecto {declaración AndroidManifest y todas las importaciones en clases Java}, todos los recursos (dibujables, mip-map, diseños y menús & tu build.gradle (una muestra de build.gradle para usar con el último SDK) se puede proporcionar a 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 debería ser la pregunta:
Bulid-> Clean Project
Herramientas-> Android-> Proyecto de sincronización con archivos Gradle
Archivo-> Invalidar cachés y reiniciar
En el peor de los casos, reiniciar su máquina ayuda.
Lo anterior debería funcionar. Siéntase libre de hacer preguntas si es necesario, es decir, publicar comentarios.
Aquí está mi solución temporal hasta que encuentre una mejor:
Utilizando todo, busca dónde 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>
En la vista Proyecto, haga clic en el módulo y presione F4. Ignora la advertencia.
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 colaboras con otras personas, el nombre de la carpeta es diferente en cada máquina, así que ten cuidado al sincronizar.
Asegúrate de que en tu AndroidManifest.xml
el nombre del paquete sea correcto. Eso me solucionó el problema cuando mi R.whatever
estaba marcado de rojo.
También recomendaría revisar todos sus archivos gradle
para asegurarse de que los nombres de los paquetes sean correctos. Eso no debería hacer que todo sea rojo, pero impedirá que tus archivos gradle
sincronicen correctamente.
Descubrí que este problema fue causado porque tenía errores en mis archivos XML. Una vez que corrige los errores XML, realice una limpieza / compilación, solucionó el problema.
En la mayoría de los casos, hay algunos problemas con sus recursos, es decir, diseños, estilos, etc. intente encontrar y solucionar el problema en sus recursos y luego limpie su proyecto.
En mi caso, seguí todas las respuestas que pude encontrar en y ninguno de ellos pareció resolver este problema. Todas las respuestas apuntan a una posible corrupción del archivo xml o conflicto con los nombres de Gradle. Algunas respuestas afirmaron que sería necesario limpiar el proyecto o sincronizar proyectos con archivos de Gradle. ninguna de estas soluciones resolvería el problema. Además, una vez que estaba siguiendo un tutorial sobre cómo crear una aplicación de Hello World y seguí las ventanas del asistente de Android Studio sin ninguna codificación, no tendría ningún sentido sospechar que era un error tipográfico como este.
TLDR
El problema resultó ser la versión de herramientas de compilación. Mi estaba configurado en 23.0.0 rc1 , así que lo 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 su navegador de proyectos en la ventana izquierda> haga clic derecho en "aplicación> Abrir configuración de módulo" y búsquelo en la "pestaña Propiedades"
Este error me sucede porque hay una entrada no válida en mi archivo activity_main.xml.
Cuando intentes construir o limpiar tu proyecto , verás mensajes de error .
Resolví el mío al leer esos mensajes de error , corregir lo que está mal en mi archivo xml. luego reconstruir el proyecto
Esto funcionó para mí:
Cerrar y reabrir proyecto
Presione "Sincronizar proyecto con el archivo Gradle" (está al lado del icono del administrador AVD en el menú superior) repita 1-2 si Gradle no pudo sincronizar por primera vez. (el mío funcionó por segunda vez).
Trabajó con Android Studio 1.2.2
Esto me pica de vez en cuando y hay algo más que probar: hacer coincidir tus versiones compileSdk y buildSdk con las últimas disponibles.
Cambié mi compileSdkVersion de 21 a 19 porque el depurador Android Studio (1.1 canary channel) no se estaba rastreando correctamente en las bibliotecas pre compiladas. Descubrí que parecía ser un rastreo basado en buildToolsVersion (19.1.0), que verifiqué haciendo clic en un error en el seguimiento de la pila (y luego seleccionando 19 en lugar de 21). Aunque lo cambié directamente en el archivo build.gradle, hay un tutorial gráfico aquí: https://www.blogger.com/comment.g?blogID=4722727826918942842&postID=3875998513888772255 y voy a resumir:
- Android Studio IDE, seleccione Archivo | Estructura del proyecto.
- Elige tu módulo, como "aplicación"
- En el campo Compilar SDK, elija la última versión
- Elija también la última versión en Herramientas de compilación
Confirme y el proyecto se sincronizará automáticamente.
La lección que recibo de esto es que ambos deberían ser lo mismo.
Haga clic en Build -> Rebuild Project
y luego en Tools -> Android -> Sync Project with Gradle Files
.
La mejor manera de resolver este problema es reiniciar su Android Studio. Si no desea reiniciar, haga clic en Build -> Clean Project
.
La solución es simple:
Vaya a la aplicación File > Project Structure > app
y seleccione la pestaña Flavours
, seleccione API 21: Android 5.0 (Lollipop)
en la lista Min Sdk Version
.
Limpiar el proyecto ayudó en mi caso
Ir
Build -> Clean Project
Lo resolví por:
1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches
//imp step
5) Check your xml files properly.
Me encontré con el mismo error, resulta que el archivo manifest tenía algunos errores. Después de arreglarlo, hizo clic en Make Project nuevamente, funcionó bien. El estudio de Android a veces no da mensajes de error muy útiles.
Para mí tuve este problema después de que cambié el nombre de uno de mis recursos en bruto de extra
a extra.jet
, luego todas las R
extra.jet
rojas y no se extra.jet
. Intenté todas las soluciones anteriores y nada funcionó, luego traté de hacer otra copia con el nombre original extra
y lo borré del estudio de Android, luego R
volvió a la normalidad y la creación se realizó correctamente.
Por alguna razón, Android Studio usa diferentes configuraciones para el editor y para el compilador. Si funciona para el compilador, entonces es bueno. Si no funciona para el editor. (ve archivos sin resolver).
Necesita agregar algunos directorios al origen de su proyecto. Por ejemplo, todos los recursos deben marcarse como "fuente".
Archivo-> Estructura del proyecto
Seleccione "Módulos", luego su proyecto. Y seleccione la pestaña de sources
. A la derecha, encuentre su directorio de recursos y haga clic en el botón azul "fuente". Cierra todo y debería funcionar.
Además, debes asegurarte de que
build/source/r/debug
también es una fuente. En Tengo todo mi build/source/*/debug
marcado 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 escuché funcionar mientras estoy seguro de que no debería cambiar nada. Intente compilar y guardar el proyecto después de comentar todas las líneas que requieran R
Entonces cuando todo no es rojo. Intenta agregarlos de nuevo. Lo extraño es que tu compilación / fuente no se genera.
También esta pregunta sugiere verificar "compilación externa del compilador"
Android Studio no genera R.java para mi proyecto de importación
Nota al margen
También asegúrese de que en su código java no. import android.r;
por lo que se muestra, todo parece estar bien. Es extraño que la construcción / fuente no se esté creando. Por ejemplo, no tengo build / apk. Puede ser que estés en modo de lanzamiento y no cree esos directorios.
Si obtiene este error, entonces limpie su proyecto.
- Ve a construir en la parte superior de tu estudio de Android
- Elige la opción proyecto limpio
La razón detrás de esto es que al .apk
archivo .apk
anterior que está presente en su carpeta de proyecto de estudio android, se elimina su sistema.
Simplemente haga clic en Build -> Rebuild Project option en su Android Studio.
También me ha funcionado al limpiar manualmente la carpeta .idea / libraries y al hacer clic en "Sync Project with Gradle Files" para solucionar el problema. Aparentemente, esta sincronización no elimina los elementos, sino que conserva los antiguos y agrega los actuales. Probablemente un error para informar :)
Tuve el mismo problema al usar archivos de ejercicios de un sitio web de capacitación e intenté resolver el problema desinstalando el estudio android y borrando todos los directorios asociados y volviéndolo a instalar, pero esto no arrojó ningún resultado. Sin embargo, noté que el tutorial que estaba viendo almacenaba sus archivos de ejercicios en el DESKTOP mientras que el mío estaba en una carpeta en mi directorio DOWNLOADS, así que simplemente copié todos los archivos de ejercicios en mi Escritorio; esto hizo que mi estructura de carpetas de ejercicios sea idéntica a la del creador del tutorial y esto funcionó.
Tuve el mismo problema con Android Studio, descubrí que build / generated / source / r contenía solo la carpeta de lanzamiento y no depuraba. Por lo tanto, por alguna razón, la compilación de depuración no generó una clase R utilizable.
Lo resolví abriendo el archivo iml del proyecto y corrigiendo 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, ejecución de depuración para generar el R, líneas sin comentar usando R y ejecutar la depuración de nuevo, corregido.
Tuve esta falla hace unos días, intenté buscar hasta que decidí volver a instalar Android Studio. Funcionó para mí
Tuve un error de reutilización de copiar / pegar en la declaración del paquete para el manifiesto
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="wrong.package.name">
el nombre de la actividad Principal tenía la ruta correcta, por lo que el manifiesto no tenía ningún error comprobado.
Después de resolver esto, el archivo de origen todavía mostró errores, aunque la creación tuvo éxito. Acabo de ejecutar la aplicación y luego se borraron los indicadores de error de origen.
esto causa principalmente debido a errores en el archivo xml, verifica tus últimos cambios xml y reconstruye el mismo problema conmigo.
necesitas IMPORTAR tu proyecto R file
import <YOUR-PROJECT-PACKGENAME>.R;