Скорее всего, проблема с разрешением зависимостей. Когда несколько компонентов используют одну и ту же зависимость, но с другой версией, Gradle подключается к сети, чтобы выяснить, какую версию использовать. Это явно не работает в автономном режиме.
Я предполагаю, что вы используете другую зависимость фрагмента (androidx.fragment:fragment
) где-то еще, которая выбрана по умолчанию в онлайн-режиме. Теперь в автономном режиме, поскольку такая проверка невозможна, Gradle ищет версию 1.2.0
(требуется androidx.fragment:fragment-ktx:1.2.0
) и не может ее найти, потому что if никогда не загружался / не кешировался.
Лучшее решение - попробуйте сделать так, чтобы ваши зависимости ссылались на одни и те же версии конфликтующих суб-зависимостей. Вы можете проверить свое дерево зависимостей с помощью ./gradlew app:dependencies
и обновить зависимости, которые конфликтуют, чтобы они использовали одни и те же версии (если возможно).
Другое решение - установить зависимости в Gradle. Вы можете добавить в свой build.gradle
файл что-то вроде этого:
configurations.all {
resolutionStrategy {
if (project.gradle.startParameter.offline) {
// x.y.z being the version that Gradle picks in the online mode.
force 'androidx.fragment:fragment:x.y.z'
}
}
}