Что может сломать сборку Android без изменения кода? - PullRequest
1 голос
/ 18 июня 2019

Я работаю над react-native приложением, которое использует act-native-firebase .Я настроил сборку CI на travis с целью получения воспроизводимых сборок, и она внезапно перестала работать, как описано здесь:

  • до : 4 дня назадсборка работает
  • после : сегодня точно такая же сборка не работает, и появляется следующее сообщение:

Зависимость Android 'com.google.android.gms: play-services-base 'имеет разные версии для пути к классам compile (16.0.1) и runtime (17.0.0).Вы должны вручную установить ту же версию с помощью DependencyResolution

Мое единственное разумное предположение состоит в том, что некоторая зависимость изменилась, но я не понимаю, что Android строит достаточно хорошо, чтобы выяснить, что произошло и почему.

И, очевидно, как я могу предотвратить такие сюрпризы в будущем?(по моему мнению, эта сборка должна быть идеально повторяемой)

В качестве примечания: при сбое сборки также отображаются несколько предупреждений, таких как:

ПРЕДУПРЕЖДЕНИЕ: конфликт с зависимостью 'com.google.android.gms: база play-services 'в проекте': приложение '.Разрешенные версии для пути к классам выполнения (17.0.0) и пути к классам компиляции (16.0.1) различаются.Это может привести к сбоям во время выполнения.Чтобы решить эту проблему, следуйте советам на https://developer.android.com/studio/build/gradle-tips#configure-project-wide-properties. В качестве альтернативы, вы можете попытаться решить проблему, добавив этот фрагмент в /home/travis/build/mapswipe/mapswipe/android/app/build.gradle: dependencies {реализация ("com.google.android.gms: play-services-base: 17.0.0")}

, но следование этому совету вызывает только другие (другие) ошибки.

Ответы [ 2 ]

2 голосов
/ 18 июня 2019

Основная причина связана с миграцией на Androidx, сервис Google Play обновлен до AndroidX

Если вы используете real-native-info, пожалуйста, обновитесь. Это решит вашу проблему с 2.1.2

См. здесь примените ссылку

Примечание. Обновление com.google.android.gms до 17.0.0 вызовет много проблемы.

0 голосов
/ 18 июня 2019

Для справки, этот комментарий на github дает ответ на мой вопрос:

Зависимость (react-native-device-info в моем случае) вместо этого использовала последнюю версию одной из своих зависимостейфиксированной / закрепленной версии.Когда был выпущен новый выпуск служб Google, это привело к тому, что сборка установила новую версию для device-info, что привело к конфликту с другими зависимостями, которые правильно указывают нужную версию.

...