Не удается разрешить символ «R» в Android Studio, но нет проблем для компиляции - PullRequest
0 голосов
/ 02 мая 2019

Я нахожу этот очень полезный код из github:

https://github.com/kai-morich/SimpleBluetoothLeTerminal

Я хотел использовать приложение и вносить свои правки. Поэтому я клонирую приложение и использую Android Studio. Мне удается построить проект с Gradle, загрузить приложение на телефон и без проблем использовать приложение.

Однако, когда я начал редактировать код, я заметил сообщение из моей IDE:

Cannot resolve symbol "R"

Я, как обычно, ищу ответ, погугляя его. Я перепробовал много вещей из тем онлайн:

  • Перезапустить андроид студию
  • Перестроить проект
  • Очистить проект (gradle)
  • Проверьте, есть ли какие-либо ошибки в xml (без ошибок)

Я использовал точно такой же код из хранилища.

Окружающая среда:

Android Studio 3.2.1
Build #AI-181.5540.7.32.5056338, built on October 9, 2018
JRE: 1.8.0_152-release-1136-b06 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 5.0.2-arch1-1-ARCH

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

tldr: обновить Android Studio до версии 3.3 или новее

Проблема заключается в том, что в проекте используется плагин Android Gradle версии 3.3.0, а вы используете более старую (чем эта) версию Android Studio 3.2.1.

В AGP 3.3 была добавлена ​​поддержка «легких классов R» - это означает, что в библиотеках источники R.java больше не генерируются, а вместо этого байт-код R.jar (скомпилированный) генерируется напрямую. Это означает, что IDE не может больше полагаться на источники R и использует R.txt (из AAR) и свои собственные анализаторы ресурсов для загрузки информации класса R в память. Из-за этого более старая Android Studio не знает, как это сделать, и поэтому говорит, что классы R отсутствуют.

Чтобы исправить это, обновите Android Studio до версии 3.3.0 или новее.

0 голосов
/ 03 мая 2019

строится при настройке chmod +x ./gradlew:

git clone https://github.com/kai-morich/SimpleBluetoothLeTerminal
cd SimpleBluetoothLeTerminal
chmod +x ./gradlew
./gradlew assembleDebug

BUILD SUCCESSFUL in 31s
26 actionable tasks: 26 executed

и есть R:

intermediates/javac/debug/compileDebugJavaWithJavac/classes/de/kai_morich/simple_bluetooth_le_terminal/R.class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...