Android Studio dice “no se puede resolver el símbolo”, pero el proyecto comstack

Estoy importando twitter4j en AndroidStudio, usando lo siguiente en mi build.gradle:

dependencies { compile 'com.android.support:support-v4:18.0.+' compile files('libs/twitter4j-core-3.0.4.jar') } 

El proyecto comstack bien y puedo crear objetos de Twitter sin problemas. Sin embargo, en el estudio de Android, cualquier elemento que haga referencia a esa biblioteca muestra “no se puede resolver el símbolo” y se muestra en rojo. ¿Qué debo hacer para que Android Studio reconozca la biblioteca?

Ya he intentado reconstruir el proyecto, ./gradlew clean, y cerrar y volver a abrir mi proyecto.

No tengo idea si esto funcionará o no, pero mi único pensamiento hasta ahora es hacer clic derecho en el archivo jar en el árbol de archivos dentro de AS y seleccionar “Agregar como biblioteca …”

EDITAR: Puede hacer “Archivo” -> “Invalidar cachés …”, y seleccionar la opción “Invalidar y reiniciar” para arreglar esto.

EDIT 2: Esta corrección debería funcionar para todos los incidentes similares y no es una resolución específica de twitter4j.

Intente cambiar el orden de las dependencias en Archivo> Estructura del proyecto> (seleccione su proyecto)> Dependencias.

Invalidar cachés no funcionó para mí, pero mover mi comstackción desde el final de la lista a la parte superior sí.

Esto es lo que funcionó para mí.

En el panel Proyecto, haga clic con el botón derecho en el nombre del proyecto y seleccione Open Module Settings del Open Module Settings en el menú emergente.

luego cambie la Compile SDK Version a la versión mínima disponible (la versión de Compile SDK Version mínima que estableció en el proyecto). Espere a que Android Studio cargue todo.

Le dará algunos errores, ignórelos.

Ahora ve a tu archivo java y el estudio de Android te sugerirá que importes

import android.support.v4.app.FragmentActivity;

Importe, luego regrese a Open Module Settings y cambie la comstackción de la versión del SDK a la que tenía antes.

Espera a que las cosas se lleven y voila.

Para el mío fue causado por el proyecto de biblioteca importado, escriba algo en build.gradle y elimínelo de nuevo y presione sincronizar ahora, el error desapareció.

Cuando viví con este problema (códigos de color rojo pero funcionan correctamente) en mi proyecto;

Como primero, lo hice que (Archivo -> Indicar Cobros) -> (Invalidar y Reiniciar).

Como último, vuelvo a sincronizar mi archivo build.gradle en mi aplicación. Después de que el problema fue resuelto

También tuve este problema con mi aplicación Android dependiendo de algunas de mis propias bibliotecas de Android (usando Android Studio 3.0 y 3.1.1).

Cada vez que actualicé una lib y volví a la aplicación, desencadenando una Gradle Sync, Android Studio no pudo detectar los cambios de código que realicé en la lib. La comstackción funcionó bien, pero Android Studio mostró líneas rojas de error en algunos códigos con lib.

Después de investigar, descubrí que es porque gradle sigue apuntando a una versión comstackda antigua de mis libs. Si va a suProject / .idea / libraries / verá una lista de archivos xml que contiene el enlace a la versión comstackda de sus libs. Estos archivos comienzan con Gradle__artifacts _ *. Xml (donde * es el nombre de sus libs).

Por lo tanto, para que Android Studio tome la última versión de sus libs, debe eliminar estos archivos Gradle__artifacts _ *. Xml, y Android Studio los regenerará, apuntando a la última versión comstackda de sus libs.

Si no desea hacerlo manualmente cada vez que hace clic en “Gradle sync” (quién querría hacer eso …), puede agregar esta pequeña tarea gradle en el archivo build.gradle de su aplicación.

 task deleteArtifacts { doFirst { File librariesFolderPath = file(getProjectDir().absolutePath + "/../.idea/libraries/") File[] files = librariesFolderPath.listFiles({ File file -> file.name.startsWith("Gradle__artifacts_") } as FileFilter) for (int i = 0; i < files.length; i++) { files[i].delete() } } } 

Y para que su aplicación siempre ejecute esta tarea antes de realizar una sincronización gradle, solo tiene que ir a la ventana de Gradle, luego buscar la tarea "deleteArtifacts" en suApp / Tasks / other /, hacer clic derecho sobre ella y seleccionar "Execute". Before Sync "(ver a continuación).

Ventana de Gradle para configurar la ejecución de tareas

Ahora, cada vez que realizas una sincronización de Gradle, Android Studio se verá obligado a utilizar la última versión de tus libs.

Este problema me sucedió cuando mi proyecto Glass no usaba el SDK instalado en la ubicación predeterminada de Android Studio. Estaba usando otra ubicación que tenía anteriormente de ADT, ya que estaba tratando de evitar volver a descargar todo. Una vez que señalé el proyecto de vuelta a la ubicación del SDK en la ubicación de instalación de Android Studio, el problema desapareció.

¡Tuve este problema por un par de días y finalmente lo descubrí! Todas las demás soluciones no funcionaron para mí por cierto.

Solución: ¡tenía personajes especiales en mi proyecto!

Solo asegúrate de no tener ninguno de esos y estarás bien o al menos una de las otras soluciones debería funcionar para ti.

¡Espero que esto ayude a alguien!

Recientemente tuve el mismo problema con Android Studio 1.3. La única solución de trabajo fue eliminar las carpetas .gradle y .idea y volver a importar el proyecto a Android Studio.

Para aquellos que probaron la respuesta aceptada y no tuvieron éxito,

Intenté también la respuesta aceptada y no funcionó para mí. Después de eso, actualicé mi proyecto con el repository y sincronicé el proyecto y no pude resolver las advertencias.

Invalidar Cachés no funcionó para mí (esta vez). Para mí fue suficiente cambiar el gradle y sincronizar nuevamente. O https://stackoverflow.com/a/29565362/2000162

En mi caso, había creado un nuevo archivo usando la GUI y había definido una interfaz dentro del archivo. Seguí recibiendo este error de símbolo porque el archivo no era un archivo “java”. No tenía extensión en absoluto.

Después de modificar la extensión de archivo a “.java”, el sistema encuentra correctamente los símbolos.

En mi caso, el archivo jar no tenía un archivo META-INF / MANIFEST.MF. ¡Después de agregar uno, funcionó!

Para mi caso, trabajando con AndroidStudio 2.2.3 la solución fue cambiar la envoltura / distribución de gradle para usar la local en la Configuración de Gradle (a pesar de ser “recomendado”). enter image description here

Esto funcionó para mí: (Archivo -> Indicar cobro) -> (Invalidar y reiniciar).

Intenté Invalidar caché / reiniciar o limpiar Proyecto -> reconstruir proyecto. Esto no funcionó para mí.

La solución final fue abrir la ventana Proyecto en el lado izquierdo de IDE, en el modo Proyecto, eliminar .gradle y .idea carpeta, ENTONCES puede invalidar cachés y reiniciar. Esto lo solucionó.

Invalidate Caches / Restart no funcionó para mí esta vez.

Encontré una solución como esta:

  1. Elimine la compile *** o la línea de implementation *** en build.gradle.

  2. Limpiar y reconstruir Los errores deberían plantearse aquí.

  3. Agregue la línea en el paso 1 de nuevo a build.gradle.

  4. Limpiar y reconstruir

Extraño…

Cambie la comstackción a la implementación en build.gradle.

Cambiar la configuración de inyección de idioma funcionó para mí.

Coloque el cursor sobre cualquiera de los códigos subrayados rojos y Alt + Enter

enter image description here

Ahora seleccione Language Injection Settings y se abrirá una ventana como se muestra a continuación.

enter image description here

Desmarque la opción seleccionada y haga clic en Aceptar

enter image description here

Espero que esto ayude a alguien.

Si nada más ayudó, podría hacer lo que Android Studio de repente no puede resolver recomienda símbolos :

  • Salir de Android Studio
  • Haz una copia de seguridad de tu proyecto
  • Eliminar todos los archivos .iml y la carpeta .idea
  • Reinicia Android Studio y vuelve a importar tu proyecto

Debes reiniciar Android Studio.