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