Синтаксис Android Studio Marks как ошибка, но gradle компилирует

У меня есть проект в Android Studio, который компилируется с помощью Gradle. Общая файловая структура

MyProject
  - MyProjectSource
  - Libraries
     - ActionBarSherlock

Мой проект построен с помощью Gradle и будет компилироваться без проблем. Однако в строках моей деятельности, где я включаю компонент из ActionBarSherlock, Android Studio отмечает это как ошибку.

Я заметил, что Android Studio также генерирует файлы .iml. Итак, мой вопрос: игнорирует ли Android Studio конструкцию Gradle при оценке того, является ли что-то допустимым синтаксисом или нет?

Очевидно, что это не проблема блокировки проекта, но она замедляет скорость, не имея возможности воспользоваться полным набором инструментов, которые может предложить Android Studio.

Заранее благодарим за помощь.

Ответ 1

Это не ошибки на самом деле, это ошибка в студии Android (0.4.2) для разрешения символа и исправлена ​​для следующей версии (0.4.3).

Чтобы избавиться от них до выпуска, выполните следующие

  • Очистите проект, используя Build > Clean Project
  • Закройте свою студию Android
  • Сделайте резервную копию своего проекта
  • Удалите все .iml файлы внутри вашего проекта.
  • Удалить содержимое каталога .idea
  • Откройте Studio и дождитесь завершения синхронизации с gradle

Также проверьте, нет ли какой-либо ошибки в File > Project Structure. Если есть какая-либо ошибка, говорящая "Dependency Not Added", нажмите на нее и используйте красную лампочку с правой стороны. Добавьте их в зависимость.

UPDATE

Android Studio 0.4.3 доступен на канале Channel Now.

Ответ 2

UPDATE: @laochiv, я обнаружил, что очистка вручную папки .idea/libraries и последующего нажатия на "Sync Project с помощью Gradle Files" решает проблему. По-видимому, этот Sync не удаляет элементы, но сохраняет старые и добавляет текущие. Вероятно, ошибка для отчета:)


У меня такая же проблема. Тем не менее, я использую ABS непосредственно от Maven.

dependencies {
    compile 'com.actionbarsherlock:actionbarsherlock:[email protected]'
    compile 'com.android.support:support-v4:18.0.+'
}

Даже ABS Gradle Пример приложения отмечает синтаксическую ошибку, хотя она компилируется.

Problem with ABS

Однако на другом компьютере все работает отлично. Я не могу думать о разных условиях в каждом сценарии.

Ответ 3

Я не знаю, как добавить библиотеку с помощью MavenCentral. Я выполняю следующие шаги, чтобы включить библиотеку

  • Добавить библиотеку в папку App_Name/App_Name/libs.
  • В App_Name/build.gradle добавьте это

зависимости {

компилировать ---

скомпилировать файлы ('libs/fileName.jar')}

  1. ./gradlew clean
  2. Убедитесь, что ваша студия Android обновлена.

Ответ 4

"Разве Android Studio игнорирует сборку gradle при оценке того, является ли что-то действительным синтаксисом или нет?" Да. Android Studio импортирует конфигурацию проекта, но запускает собственный компилятор при редактировании и сохранении (вы даже можете изменить его на компилятор Eclipse ECJ). Истинный авторитет в сборке - Gradle, а AS все еще находится в бета-версии. Вы можете попробовать выполнить gradle повторную синхронизацию или закрыть и reimport проект. Мне приходилось манипулировать AS так много раз, особенно после внесения изменений в build.gradle.

Изменить: я нашел лучше использовать ActionBarSherlock как зависимость gradle, а не каталог библиотеки.

compile 'com.actionbarsherlock:actionbarsherlock:[email protected]'

Вам нужно будет использовать диспетчер SDK и установить локальный репозиторий maven.

Но в конечном итоге можно избавиться от этих ошибок компиляции, если ваш build.gradle не создает никаких дополнительных исходных наборов, которые AS не понимает; старайтесь не слишком сильно отклоняться от примеров плагина android gradle.

Кроме того, я запускал обновления Canary для AS для последних и самых больших.

Ответ 5

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

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

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

Источник https://www.youtube.com/watch?v=FX_gCTpqhwM

Ответ 6

У меня была эта проблема в Android Studio 4.2, она может быть исправлена ​​на 4.3

Я заметил, что добавление некоторых зависимостей не привязывало class.jar к зависимости, поэтому Gradle распознает все, кроме IDE. Чтобы исправить это:

  • Откройте настройки модуля вашего проекта
  • Выберите зависимость, которая имеет ошибку
  • Нажмите "Добавить" (+) для этой зависимости (внизу всплывающего окна)
  • Перейдите к вашим проектам/сборкам/вложенным пакетам/вашей-зависимости/classes.jar
  • Теперь IDE должна распознавать файлы

Надеюсь, что это поможет

Ответ 7

У меня было это сегодня, а gradle update/sync не решалось. Но обновление до последней версии Android Studio 2.2 update 5 исправлено (было на 2.1).