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 и переустановите его

Другие вопросы по тегам