Android Studio говорит, что «невозможно разрешить символ», но компилирует проект

Я импортирую twitter4j в AndroidStudio, используя следующее в моем файле build.gradle:

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

Проект компилируется отлично, и я могу создавать объекты твиттера без проблем. Однако в студии Android все, ссылаясь на эту библиотеку, показывает, что «невозможно разрешить символ» и отображается красным цветом. Что мне нужно сделать, чтобы заставить Android Studio распознать библиотеку?

Я уже пробовал перестроить проект ./gradlew clean, и закрытие и повторное открытие моего проекта.

Не знаю, будет ли это работать или нет, но моя единственная мысль пока: щелкните правой кнопкой мыши файл jar в дереве файлов в AS и выберите «Добавить как библиотеку …»

EDIT: вы можете сделать «Файл» -> «Invalidate Caches …» и выбрать опцию «Invalidate and Restart», чтобы исправить это.

EDIT 2: Это исправление должно работать для всех подобных инцидентов и не является специфическим разрешением twitter4j.

Попробуйте изменить порядок зависимостей в файле> Структура проекта> (выберите проект)> Зависимости.

Invalidate Caches не работает для меня, но перемещение моей сборки из нижней части списка вверх.

Это то, что сработало для меня.

На панели «Проект» щелкните правой кнопкой мыши имя проекта и выберите « Open Module Settings во всплывающем меню.

затем измените Compile SDK Version на минимальную доступную версию (минимальную версию sdk, установленную в проекте). Подождите, пока Android-студия загрузит все.

Это даст вам некоторые ошибки, проигнорируйте их.

Теперь перейдите в свой java-файл, и Android-студия предложит вам импортировать

import android.support.v4.app.FragmentActivity;

Импортируйте его, а затем вернитесь к Open Module Settings и измените версию sdk для компиляции до того, что было раньше.

Дождитесь загрузки вещей и вуаля.

Для моего был вызван проект импортированной библиотеки, введите что-то в build.gradle и удалите его еще раз и нажмите «Синхронизация», ошибка исчезла.

Когда я жил с этой проблемой (коды красного цвета, но они работают правильно) в моем проекте;

Во-первых, я сделал так, что (Файл -> Показать каши) -> (Invalidate и Restart).

Как последний раз, я resync мой файл build.gradle в моем приложении. После устранения проблемы.

У меня также была проблема с моим Android-приложением в зависимости от некоторых моих собственных Android-библиотек (с использованием Android Studio 3.0 и 3.1.1).

Всякий раз, когда я обновлял lib и возвращался в приложение, запуская Gradle Sync, Android Studio не смог обнаружить изменения кода, которые я сделал в lib. Компиляция отлично работала, но Android Studio показывала красные строки ошибок на некотором коде, используя lib.

После исследования я обнаружил, что это потому, что gradle продолжает указывать на старую скомпилированную версию моих библиотек. Если вы перейдете в свой проект / .idea / libraries /, вы увидите список xml-файлов, содержащих ссылку на скомпилированную версию ваших библиотек. Эти файлы начинаются с Gradle__artifacts _ *. Xml (где * – это имя ваших библиотек).

Поэтому, чтобы Android Studio взяла последнюю версию ваших библиотек, вам нужно удалить эти файлы Gradle__artifacts _ *. Xml, а Android Studio будет их регенерировать, указывая на самую последнюю скомпилированную версию ваших библиотек.

Если вы не хотите делать это вручную каждый раз, когда вы нажимаете «Gradle sync» (кто захочет это сделать …), вы можете добавить эту небольшую задачу gradleиента в файл build.gradle вашего приложения.

 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() } } } 

И чтобы ваше приложение всегда выполняло эту задачу перед выполнением gradleиентной синхронизации, вам просто нужно перейти в окно «Градл», затем найти задачу «deleteArtifacts» в разделе yourApp / Tasks / other /, щелкнуть правой кнопкой мыши по ней и выбрать «Выполнить Перед синхронизацией "(см. Ниже).

Окно Gradle для настройки выполнения задачи

Теперь, каждый раз, когда вы выполняете синхронизацию Gradle, Android Studio будет вынуждена использовать последнюю версию ваших библиотек.

Эта проблема возникла для меня, когда мой проект Glass не использовал SDK, установленный в местоположении по умолчанию Android Studio. Я использовал другое место, которое ранее было у ADT, так как я пытался избежать повторной загрузки всего. Как только я указал проект обратно на место SDK в месте установки Android Studio, проблема исчезла.

У меня была эта проблема на пару дней и, наконец, разобралась! Все другие решения для меня не работали.

Решение: у меня были специальные символы в моем проекте!

Просто убедитесь, что у вас нет никого, и вы должны быть в порядке, или хотя бы одно из других решений должно работать на вас.

Надеюсь, это поможет кому-то!

Недавно у меня была такая же проблема с Android Studio 1.3. Единственным рабочим решением было удалить папки .gradle и .idea и повторно импортировать проект в Android Studio.

Для тех, кто пробовал принятый ответ и не добился успеха,

Я тоже пробовал принятый ответ и не работал для меня. После этого я обновил свой проект с помощью репозитория и синхронизировал проект и не смог разрешить предупреждения.

Invalidate Caches не работает для меня (на этот раз). Для меня это было достаточно, чтобы изменить gradle и синхронизировать снова. Или https://stackoverflow.com/a/29565362/2000162

В моем случае я создал новый файл с использованием GUI и определил интерфейс внутри файла. Я продолжал получать эту ошибку символа, потому что файл не был «java» файлом. У нее вообще не было расширения.

После изменения расширения файла на «.java» система правильно находит символы.

В моем случае файл jar не имел файла META-INF / MANIFEST.MF. После добавления одного, это сработало!

Для моего дела, работающего с AndroidStudio 2.2.3, решение заключалось в том, чтобы изменить оболочку / распределение gradleиента, чтобы использовать локальную в настройках Gradle (несмотря на то, что они «рекомендованы»). введите описание изображения здесь

Это сработало для меня – (File -> Indicate Cashes) -> (Invalidate and Restart).

Я попробовал Invalidate cache / restart или очистить Project -> rebuild project. Это не сработало для меня.

Окончательное решение было открыто в окне проекта в левой части IDE, в режиме проекта, удалить папку .gradle и .idea, после чего вы можете аннулировать кеши и перезапустить. Это фиксировало это.

Invalidate Caches / Restart не работает для меня на этот раз.

Нашел решение, подобное этому:

  1. Удалите compile *** или строку compile *** implementation *** в build.gradle.

  2. Очистите и восстановите. Здесь должны быть указаны ошибки.

  3. Добавьте строку на шаге 1 обратно в build.gradle.

  4. Очистите и восстановите.

Weird …

Измените компиляцию на реализацию в build.gradle.

Изменение настроек ввода языка работало для меня.

Поместите курсор на любой красный подчеркнутый код и Alt + Enter

введите описание изображения здесь

Теперь выберите « Language Injection Settings и откроется окно, как показано ниже.

введите описание изображения здесь

Снимите флажок с выбранной опции и нажмите «ОК».

введите описание изображения здесь

Надеюсь, это поможет кому-то.

Если ничего не помогло, вы могли бы сделать так, как Android Studio вдруг не сможет разрешить символы, рекомендует:

  • Выйти из Android Studio
  • Резервное копирование вашего проекта
  • Удалите все файлы .iml и папку .idea.
  • Перезапустите Android Studio и переименуйте свой проект

Вам необходимо перезапустить Android Studio.

  • Невозможно загрузить обновленный APK в Google Play из-за другого сертификата
  • Как я могу получить список каталогов ресурсов из моего приложения для Android?
  • ViewPager wrap_content не работает
  • TextInputLayout не показывает подсказку EditText перед тем, как пользователь сосредоточится на ней
  • Анимация маркеров на Google Maps v2
  • Невозможно разрешить символ «Тема» в styles.xml (Android Studio)
  • Android Studio - Как увеличить размер выделенной кучи
  • Не удается получить местоположение и электронную почту с помощью API Facebook
  • Получение телефонного кода в США с помощью Android
  • Как создать EditText с закругленными углами?
  • Как добавить нижний колонтитул в ListView?
  • Давайте будем гением компьютера.