Подтвердить что ты не робот

Встроенный компилятор Android Studio показывает красные ошибки, но компиляция с помощью gradle отлично работает

Я установил свой проект в Android Studio, чтобы использовать Square Wire library, согласно этот вопрос.

BuildCompile Project отлично работает.

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

Однако, если я открою один из моих сгенерированных файлов Buffer протокола, пакет Square не будет распознан.

Android Studio inline compile errors

Другим симптомом является то, что методы, унаследованные от класса Square Message, отображаются как "Невозможно разрешить метод" компилировать ошибки в редакторе, даже если они строят и работают нормально.

Android Studio single line compile error

Мне нужно сделать что-то большее, чем просто добавить зависимость в build.gradle для моего модуля в моем проекте?

4b9b3361

Ответ 1

Спасибо free3dom за то, что вы меня на правильном пути.

Диагностика

Опция Sync Project with Gradle Files в Android Studio, похоже, обновляет библиотеки Project Structure.

gradle sync

Однако в моем случае были некоторые ошибки:

errors found

Расширение (не очень очевидная) ссылка показала детали. Моя проводная библиотека времени показывалась в неправильном месте:

libraries

Это казалось похмелье из моей первоначальной конфигурации, где я импортировал JAR в папку libs.

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

Впоследствии я изменил его, чтобы импортировать его непосредственно из Maven Central (как здесь), и кажется, что старая настройка никогда не была перезаписана новой.

Исправление

Исправление состоит в том, чтобы удалить зависимость библиотеки от экрана Project Structure, а затем Sync Project with Gradle Files снова.

Подробнее

Вы также можете увидеть, какой путь используется для ресурса, открыв непосредственно .idea/libraries/wire_runtime_1_2_0.xml.

Мой сломанный был:

  <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 />

После удаления и повторного добавления библиотеки он изменил значение root url на:

      <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!/" />

Обновление

Android Studio v0.4.4 по-видимому, исправляет другие ошибки, которые имеют те же симптомы, поэтому, если у вас есть более старая версия, которую вы, возможно, захотите обновить.

Ответ 2

Следующие шаги помогают

  1. Закройте ваш проект, и в папке вашего проекта удалите project/.idea
  2. Удалить папку ~/.gradle.

Откройте проект снова. Все должно быть решено.

Ответ 3

Простое решение

Перейдите по ссылке, и у меня это сработало.

  1. Выберите опцию " File из меню в левой верхней части Android Studio.
  2. Выберите опцию: Invalidate Cache/Restart Откроется диалоговое окно.
  3. Нажмите на первую кнопку с опцией: Invalidate and Restart
  4. Он закроет Android Studio и перезапустит его. Также начнется переиндексация проекта.

Это решило мою проблему

Перейдите в Файл > Неверный кэш/Перезапуск > Неверный и перезапустите

Источник здесь для YouTube

Ответ 4

1) Нажмите значок gradle (справа на студию Android)

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

2) Нажмите кнопку обновления и подождите, пока проблема будет решена: D

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

Ответ 5

У меня все еще была та же проблема с Android Studio v3.2.1, и я разобрался с проблемой, просто удалив эти две подпапки из папки .idea (не нужно удалять всю папку .idea), в то время как синхронизация gradle не Работа:

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

Ответ 6

Для меня удаление папки .gradle и .idea проекта решило проблему.

Ответ 7

Мое хакерское решение для этого -

  1. Откройте файл build.gradle
  2. Вырежьте все внутри dependencies{}
  3. Вставьте в блокнот для супер безопасного временного хранения
  4. Выберите "Синхронизировать сейчас" в файле build.gradle
  5. Подождите, пока сбой синхронизации
  6. Вставьте ваши зависимости обратно в
  7. "Синхронизировать сейчас" снова

Перепробовал много решений, и это было единственным исправлением для меня.

Ответ 8

У меня была эта проблема после обновления до Android Studio 3.1. Я решил проблему, обновив все компоненты, которые я использую. Поэтому я изменил следующие записи в моем build.gradle(app):

  1. Обновите SDK (с "compileSdkVersion 25" до "compileSdkVersion 26" или выше, когда вы читаете эту заметку):

    //compileSdkVersion 25

    compileSdkVersion 26

    Комментарий: это изменение вынудило программу загрузить/установить новый SDK во время следующей синхронизации.

  2. Обновите appcompat-v7:

    //реализация 'com.android.support:appcompat-v7:25.4.0'

    реализация 'com.android.support:appcompat-v7:26.1.0'

  3. Обновление FireBase:

    //реализация 'com.google.firebase: firebase-ads: 11.4.2'

    реализация "com.google.firebase: firebase-core: 12.0.1"

    реализация "com.google.firebase: firebase-ads: 12.0.1"

  4. В PROJECT build.gradle обновите google-сервисы:

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

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

  5. Обновите Gradle (с 4,4 до 4,6). Из gradle-wrapper.properties: distributionUrl = https://services.gradle.org/distributions/gradle-4.6-all.zip

После этих изменений очистите проект, аннулируйте кэш/перезапустите, удалите содержимое .idea/library и выполните повторную синхронизацию (не уверен в порядке, но ВСЕ эти действия решили проблему для меня).

Ответ 9

Удаление папки библиотеки в .idea решило проблему для меня. Он находится в корне проекта /.idea/library.

Я использую Android Studio 3.1.4

Ответ 10

Ниже приведены шаги, когда проект успешно скомпилирован, но с неразрешенными классами (все классы будут использоваться красным цветом во всех файлах)

Шаг 1. Удалить .gradle файл

Шаг 2. Удалить .idea файл

Шаг 3. Откройте новое окно студии Android с другим Android-проектом в вашей системе и закройте ваш проект с ошибкой.

Шаг 3. Теперь снова откройте/импортируйте проект с панели инструментов студии Android Studio → Файл → Открыть

Примечание. Теперь при импорте проекта новые папки .gradle и новые .idea будут автоматически скомпилированы с разрешенными зависимостями.

Ответ 11

Просто сделайте это на своей Android-студии:

Файл → Неправильные кэши/Перезапуск → Неправильный и перезапуск

Это сработало для меня. Нет необходимости очищать папку. /gradle или./idea

Ответ 12

Если все вышеприведенные ответы не работают для вас. Просто попробуйте обновить свои зависимости до последней версии. Это сработало для меня.

Ответ 13

Я нашел легкий путь

  • Откройте уровень приложения build.gradle
  • Удалить зависимость, которая показывает ошибку и синхронизацию.
  • Снова добавить зависимость и синхронизацию.

Ошибка ушла!

До

Before

После

After

Ответ 14

Удаление .idea/caches и .idea/libraries должно .idea/libraries все ошибки.

Ответ 15

Кажется, что каждый использует свой подход к решению этих проблем. Я предложу другой, который я считаю немного менее агрессивным, чем другие. Когда я внесу изменения из библиотеки aar, которую я включил, я открою файл "settings.gradle" для проекта.

Затем вырежьте основной модуль проекта из списка проектов:

include ':mainproj',

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

Ответ 16

Эти решения не помогли мне с той же проблемой в Android Studio 0.5.8.

Я описал свой ответ на тот же вопрос (я думаю): fooobar.com/questions/40435/... Я просто удалил каталог ~/.AndroidStudioPreview(в Ubuntu). Я пропустил все настройки Android Studio, но он работает.

Ответ 17

В моем случае по какой-то причине версия Android Plugin не была установлена. Я попытался очистить кеш и удалить .gradle и .idea, но это не сработало, и после долгих часов блуждания я нашел это.

File > Project Structure

Ответ 18

Я попробовал большинство из приведенных выше исправлений, и в действительности все работало, удалив все папки конфигурации .AndroidStudio и затем перезапустив Android Studio.

  • Расположение: C:\Users\your.username

Ответ 19

Ранее у меня была аналогичная проблема, недействительность кеша и перезапуск не разрешили. Я просто сделал Gradle Sync, и все было хорошо.

Ответ 20

Все вышеизложенное ответ не со мной. Я использую Android studio версии 2.3.3: (

Ответ 21

Решил проблему с помощью проекта очистки Build->Clean Project

Ответ 22

Для меня я ссылаюсь на банку в библиотеке модулей. Он не может разрешить символ в банке. Поэтому я нахожу решение для моей ситуации. Используйте provided способ.

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

Ответ 23

Все ответы выше не спомогли мне. Моя проблема заключалась в том, что у меня было 3 модуля, с двумя из них с одинаковым именем пакета.

Это было нормально для андроид студии & lt; = 3.2.1.

Для андроид студии> 3.2.1, резюме было красным.

Я решил это следующим образом (я просто сделал разные имена пакетов для каждого модуля): Любая версия android Studio & gt; 3.2.1 показать красный ресурс, но все еще компилировать

Ответ 24

Эта проблема была устранена с помощью следующих шагов:

  1. обновить версию библиотеки в gradle на любое случайное число, например:  lib_1.0.0 → lib_1.0.0.0

  2. Gradle Sync

  3. синхронизация показывает ошибку

  4. отменить изменение версии  lib_1.0.0.0 → lib_1.0.0

  5. Gradle Sync

Откройте файл Java с импортом, чтобы увидеть, что ошибка устранена.