El compilador en línea de Android Studio muestra errores rojos, pero la compilación con gradle funciona bien


147

He configurado mi proyecto en Android Studio para usar la biblioteca Square Wire , según esta pregunta .

Build-> Compile Projectfunciona bien.

2:03:10 PM Compilation completed successfully in 31 sec

Sin embargo, si abro uno de mis archivos de Protocol Buffer generados, entonces no se reconoce el paquete Square.

Errores de compilación en línea de Android Studio

Otro síntoma es que los métodos heredados de la Messageclase Square se muestran como errores de compilación "No se puede resolver el método" en el editor, a pesar de que se compilan y funcionan bien.

Error de compilación de una sola línea de Android Studio

¿Necesito hacer algo más que simplemente agregar la dependencia build.gradlepara mi módulo en mi proyecto?


Tuve un problema similar al usar mis bibliotecas (no las externas), vea cómo logro solucionar esto aquí: stackoverflow.com/a/50569818/373033
nah0y

Respuestas:


132

Los siguientes pasos ayudan

  1. Cierre su proyecto y en su carpeta de proyecto elimine project/.idea
  2. Eliminar ~/.gradlecarpeta

Abre el proyecto nuevamente. Todo debería estar resuelto.


1
Pasar horas en este problema. Gracias. Mi error fue que acabo de eliminar .gradle y no .idea
M el

2
Esto funcionó para mí eliminar .gradle y .idea y luego invalidar y reiniciar resolvió mi problema. y luego sincronizar con gradle.
Pankaj

He movido la .gradlecarpeta de C:\Users\Hasnain\.gradlea otro directorio. Luego, el estudio de Android muestra un error en cada clase. Luego sigo los pasos mencionados anteriormente, luego se resuelve el problema.
hasnain_ahmad

38
Eliminar todo en el .ideadirectorio es una mala idea, ya que podría restablecer todas las configuraciones del proyecto. Simplemente eliminé .idea/librariesy .idea/cachesfinalmente resolví el problema después de probar todas las demás soluciones.
fdermishin

funcionó muy bien en AS 3.1.3. Ni siquiera necesitaba invalidar cachés. ¡Esperemos que AS se construya más rápido ahora!
Alguien en algún lugar

111

Gracias a free3dom por ponerme en el camino correcto aquí.

Diagnóstico

La Sync Project with Gradle Filesopción en Android Studio parece mantener las Project Structurebibliotecas actualizadas.

sincronización de gradle

Sin embargo, en mi caso hubo algunos errores:

errores encontrados

La expansión del enlace (no muy obvio) mostró los detalles. Mi biblioteca de tiempo de ejecución de cable se mostraba en una ubicación incorrecta:

bibliotecas

Esto parecía ser una resaca de mi configuración original donde había importado el JAR a una carpeta libs.

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

Posteriormente lo cambié para importarlo directamente desde Maven Central ( como aquí ), y parece que la configuración anterior nunca se sobrescribió con la nueva.

La solución

La solución es eliminar la dependencia de la biblioteca de la Project Structurepantalla y luego Sync Project with Gradle Filesnuevamente.

Mas detalle

También puede ver qué ruta se está utilizando para el recurso abriendo el .idea/libraries/wire_runtime_1_2_0.xml directamente.

Mi roto fue:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />

Después de eliminar y volver a agregar la biblioteca, cambió root urla:

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />

Actualizar

Android Studio v0.4.4 aparentemente corrige otros errores que tienen los mismos síntomas, por lo que si tiene una versión anterior, es posible que desee actualizar.


3
Gracias Dan J. Antes de probar su solución, probé esta más fácil (según mi opinión) y funcionó para mí: abra el panel de Gradle en el lado derecho del editor (arriba de "Proyectos Maven" y "Comandante") y haciendo clic en el botón actualizar. Eso actualizó la configuración del módulo. Créditos a @Matteo Danieli (ver: stackoverflow.com/a/17043001 )
almighty972

1
necesitaba eliminar las dependencias de jar locales, eso me resolvió, gracias por la inspiración
jhegedus

¡Acabo de hacer clic en "Sincronizar proyecto con archivos Gradle" y ahora todo está bien! ¡Muchas gracias! Me has salvado el día jaja
Jorge Gabriel Siqueira

No funciono para mi. Pero eliminar .gradle y .idea funcionó
Golnar

Hoy en día, el mismo botón se muestra como un icono de elefante con una flecha hacia abajo.
tm

87

Solución simple

Ir a través del enlace y funcionó para mí.

  1. Elija la Fileopción del menú en el lado superior izquierdo del estudio de Android.
  2. Seleccione la opción: Invalidate Cache/Restartse abrirá un cuadro de diálogo.
  3. Haga clic en el primer botón con opción: Invalidate and Restart
  4. Cerrará Android Studio y lo reiniciará. Además, comenzará a volver a indexar el proyecto.

Resolvió mi problema

Vaya a Archivo > Invalidar caché / reiniciar > Invalidar y reiniciar

Fuente aquí para youtube


Esto funcionó para mí; Android Studio mostraba errores en todas partes después de que intenté hacer algo de programación en un lugar con mala recepción wifi. (!!!) Luego me aseguré de tener una buena conexión wifi y la reconstruí, sin embargo, los errores permanecieron. Incluso una limpieza / construcción no lo resolvió. Los cachés invalidantes lo arreglaron.
Alguien en alguna parte

Usando Android Studio 2.1.3 en Fedora. Esta solución funcionó para mí. Se agregaron las herramientas libgdx y la importación tuvo un error, pero se compiló muy bien. Cerrar y reabrir no funcionó, pero hacer la invalidación y reiniciar funcionó bien.
JoeMoe1984

1
Trabajado en AS 3.1.4! Creo que todas estas sugerencias son la forma correcta de manejarlo. Es por comando de menú de Android Studio. Eso es definitivamente mucho mejor que hacer el reinicio manualmente en el entorno del archivo.
Jan Bergström

Trabajó para mí en 3.5.1
Neela

44

1) Haga clic en el icono de gradle (lado derecho en el estudio de Android)

ingrese la descripción de la imagen aquí

2) Haga clic en el botón Actualizar y espere a que se resuelva el problema: D

ingrese la descripción de la imagen aquí


En Android Studio 3.1 +, vaya a Archivo> Invalidar caché / reiniciar> Invalidar y reiniciar.
DroidDev

17

Todavía tenía el mismo problema con Android Studio v3.2.1 constantemente, y solucioné el problema simplemente eliminando estas dos subcarpetas de la .ideacarpeta (no es necesario eliminar toda la .ideacarpeta) mientras una sincronización de Gradle no funcionaba:

  • ./idea/caches
  • ./idea/libraries

En la mayoría de los casos, resuelve mis problemas. En algunos otros, puede ser necesario "Invalidar caché y reiniciar", o también cambiar la versión de Gradle.
GoRoS

12

Para mí, eliminar la carpeta .gradle y .idea del proyecto resolvió el problema.


11

Solo haz esto en tu estudio de Android:

Archivo -> Invalidar cachés / reiniciar -> Invalidar y reiniciar

Esto funcionó para mí. No es necesario borrar la carpeta ./gradle o ./idea


9

Mi solución hacky para esto:

  1. Abre tu build.gradlearchivo
  2. Recorta todo dentro dependencies{}
  3. Pegar en el bloc de notas para un mantenimiento temporal súper seguro
  4. Elija 'Sincronizar ahora' en el build.gradlearchivo
  5. Espere a que falle la sincronización
  6. Pega tus dependencias de nuevo en
  7. 'Sincronizar ahora' nuevamente

Intenté muchas soluciones y esta fue la única solución para mí.


7

Tuve este problema después de actualizar a Android Studio 3.1. Resolví el problema actualizando todos los componentes que uso. Así que cambié las siguientes entradas en mi build.gradle (aplicación):

  1. Actualice el SDK (de "compileSdkVersion 25" a "compileSdkVersion 26" o superior cuando lea esta nota):

    // compileSdkVersion 25

    compileSdkVersion 26

    Comentario: este cambio obligó al programa a descargar / instalar nuevo SDK durante la próxima sincronización.

  2. Actualice appcompat-v7:

    // implementación 'com.android.support:appcompat-v7:25.4.0'

    implementación 'com.android.support:appcompat-v7:26.1.0'

  3. Mejora la base de fuego:

    // implementación 'com.google.firebase: firebase-ads: 11.4.2'

    implementación 'com.google.firebase: firebase-core: 12.0.1'

    implementación 'com.google.firebase: firebase-ads: 12.0.1'

  4. En PROJECT build.gradle, actualice google-services:

    // classpath 'com.google.gms: google-services: 3.1.0'

    classpath 'com.google.gms: google-services: 3.2.0'

  5. Actualización de gradle (de 4.4 a 4.6). De gradle-wrapper.properties: distributionUrl = https: //services.gradle.org/distributions/gradle-4.6-all.zip

Después de estos cambios, limpie el proyecto, invalide la memoria caché / reinicio, elimine el contenido de .idea / bibliotecas y vuelva a sincronizar (no estoy seguro sobre el orden, pero TODAS estas actividades me resolvieron el problema).


1
¿Qué pasa con otros componentes que no tienen una versión más nueva?
Amir Dadgari

No lo sé. Esos son los componentes que tenía en mi proyecto.
Pablo Alfonso

Hola Amir, según el sitio web oficial, gradle 4.4 es el último disponible (a partir de marzo de 2018). ¿Dónde encontraste Gradle 4.6?
Pablo Alfonso

Encontré la ubicación de Gradle 4.6. Actualicé la respuesta. Gracias.
Pablo Alfonso

44
eliminar .idea / bibliotecas de contenido, funciona para mí. muchas gracias
Tranvía Nguyen

7

Eliminar la carpeta de bibliotecas en .idea me resolvió el problema. Se encuentra en la raíz / .idea / bibliotecas del proyecto.

Estoy usando Android Studio 3.1.4


2
Esto funcionó pero tuve que invalidar y reiniciar también.
Dan Anderson el

5

Debajo de los pasos cuando el proyecto se compila con éxito pero con clases no resueltas (el uso de todas las clases será de color rojo en todos los archivos)

Paso 1. Eliminar el archivo .gradle

Paso 2. Eliminar el archivo .idea

Paso 3. Abra la nueva ventana de Android Studio con algún otro proyecto de Android en su sistema y cierre su proyecto con error

Paso 3 . Ahora abra / importe el proyecto una vez más desde la barra de herramientas del estudio Android Studio -> Archivo -> Abrir

Nota: Ahora, cuando importe el proyecto, el compilador generará automáticamente las nuevas carpetas .gradle y nuevas .idea con dependencias resueltas.


2

Si todas las respuestas anteriores no funcionan para usted. Simplemente intente actualizar sus dependencias a la última versión. Funcionó para mi.


2

Intenté la mayoría de las soluciones anteriores y lo que realmente funcionó fue eliminar todas las carpetas de configuración de AndroidStudio y luego reiniciar Android Studio.

  • Ubicación: C: \ Users \ your.username

2

Encontré la manera fácil

  • Nivel de aplicación abierta build.gradle
  • Elimine la dependencia que muestra error y sincronización.
  • Nuevamente agregue dependencia y sincronización.

Error ido!

antes de

antes de

Después

Después



2

Parece que todos usan un enfoque diferente para solucionar estos problemas. Sugeriré otro que siento que es un poco menos invasivo que los demás. Cuando introduzco cambios de una biblioteca aar que incluyo, abriré el archivo "settings.gradle" para el proyecto.

Luego recorte el módulo principal del proyecto de la lista de proyectos:

include ':mainproj',

y luego sincroniza tu proyecto. Luego péguelo nuevamente y vuelva a sincronizar su proyecto una vez más. Creo que esto es lo mismo que algunos de los pasos de eliminación manual, pero esto le permite hacerlo desde el IDE un poco más rápido y menos doloroso.


Funciona bien para mi. ¡Gracias! @ Jay Snayder
Shivam

2

Estoy arreglado por el siguiente método

Método 1

Archivo> Invalidar caché / reiniciar> Invalidar y reiniciar

Método 2

  • Si enfrenta este error solo para un proyecto en particular, haga esto
   1. Close current project
   2. Go to your project path C://User/Android studio project/your project
   3. Delete two files .gradle and .idea
  • Si enfrenta este error para todos los proyectos, haga esto
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5

1

Estas soluciones no me ayudaron con el mismo problema en Android Studio 0.5.8.

Describí mi respuesta a la misma pregunta (supongo): https://stackoverflow.com/a/23891829/534698 acabo de eliminar el directorio ~ / .AndroidStudioPreview (en Ubuntu). Perdí toda mi configuración de Android Studio pero funciona.


Esto es lo único que funcionó para mí. Android Studio 1.0.2
Bobby Hargett

1

En mi caso, por alguna razón, la versión del complemento de Android no estaba configurada. Intenté borrar el caché y eliminar .gradle y .idea también, pero no funcionó y, finalmente, divagando durante horas, encontré esto.

Archivo> Estructura del proyecto


0

Tuve un problema similar antes, invalidar el caché y reiniciar no lo resolvió. Acabo de hacer una sincronización de Gradle y todo funcionó bien.


0

Resuelto el problema limpiando el proyecto Build->Clean Project


0

Para mí, remito un jar en una biblioteca de módulos. No puede resolver el símbolo en el frasco. Entonces encuentro la solución para mi situación. Usa el providedcamino.

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')


0

Obtuve el mismo problema solucionado mediante los siguientes pasos:

  1. actualice la versión de la biblioteca en gradle a cualquier número aleatorio, por ejemplo: lib_1.0.0 -> lib_1.0.0.0

  2. sincronización de gradle

  3. sincronización muestra error

  4. revertir el cambio de versión lib_1.0.0.0 -> lib_1.0.0

  5. sincronización de gradle

Abra el archivo java con importaciones para ver el error borrado.


0

Ninguna de las soluciones funcionó para mí ... Recurrí a desinstalar Java de mi computadora, ejecuté Android Studio para asegurarme de que detectara la desinstalación y luego la volví a instalar.

Si elige ir por este camino, intente cambiar la ruta jdk y establecer la nueva ruta en la estructura del proyecto. Si eso no funciona, adelante y desinstala Java .


0

Solo hice un Proyecto limpio y un Proyecto de reconstrucción antes de reiniciar Android Studio, resuelve mi problema. Quizás Android Studio en realidad no actualice las referencias en la interfaz

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.