Android Studio генерирует R-файл только для модулей без зависимостей от модулей в многомодульном проекте
После обновления до AS 3.3.1 из 3.2.something у меня появилась странная ошибка: R-файл генерируется только для модулей, которые не реализуют никаких других модулей. Я все еще могу скомпилировать проект или перейти к объявлению через cmd+B, но каждый файл ресурсов, как R.layout.activity_main
подсвечивается сообщением "неразрешенная ссылка", пока я не удалю каждую реализацию модуля из модуля build.gradle
и повторно синхронизировать проект.
Насколько я заметил, проблема не связана с Android Gradle 3.3.0 или Kotlin 1.3, так как мои старые проекты также затронуты.
Что я уже пробовал:
- Очистить / Восстановить проект
- Неверный кеш
- Resync Gradle
- Переключиться на Android Gradle 3.2.1
- удалять
.idea
каталог
Вот мой проект, пример модуля build.gradle и используемые библиотеки. Например, если я прокомментирую implementation(project(":presentation"))
линия в mainscreen/build.gradle.kts
ошибка исчезает. Очевидно, это не решение.
UPD: решено
Решение: вы должны указать разные имена пакетов в каждом AndroidManifest.xml
файлы, т.е. com.mycompany.example.launcher
для модуля запуска, com.mycompany.example.presentation
для презентационного модуля и так далее.
1 ответ
[решение1] Вы можете удалить старую версию gradle из вашей системы и начать установку новой версии.
[solution2] Или удалите Android Studio и переустановите его