Сбой сборки в Travis из-за ошибки multidex/android?
Мы не используем инструменты сборки "26.0.2" в нашем проекте. На самом деле, делая grep -RF "26.0.2" . | grep -v android-profile
в нашем каталоге проектов ничего не возвращается кроме
./CBSandbox/build/intermediates/multi-dex/release/components.flags:-libraryjars /home/gabor/Android/Sdk/build-tools/26.0.2/lib/shrinkedAndroid.jar
./CBSandbox/build/intermediates/multi-dex/debug/components.flags:-libraryjars /home/gabor/Android/Sdk/build-tools/26.0.2/lib/shrinkedAndroid.jar
Это само по себе является поддельным, и это заставляет Трэвиса проваливать нашу сборку (Failed to find Build Tools revision 26.0.2
так как наш .travis.yml
определяет ANDROID_BUILD_TOOLS_VERSION=27.0.3
который мы на самом деле используем). Является ли известной ошибкой мультидекса, что более ранняя версия инструментов извлекается во время мультидекса? Обратите внимание, что это не во время защиты, поскольку CBSandbox имеет minifyEnabled false
в своем файле сборки (-libraryjars
на выходе заставил меня задуматься о прогуарде).
Мы используем последнюю версию плагина Gradle, которая по умолчанию использует новейшие инструменты сборки. Но даже если мы вручную указываем инструменты сборки, он все равно пытается получить более старую версию во время мультидекса.
Изменить: сборка по-прежнему не удается в Travis, но локально и в среде отладки Travis это успешно:
travis@travis-job-76d0d0f4-b465-4926-b6fd-6496bbea6835:~/build/ChartBoost/android-sdk$ ./gradlew :CBSandbox:assemble
...
Checking the license for package Android SDK Build-Tools 26.0.2 in /usr/local/android-sdk/licenses
License for package Android SDK Build-Tools 26.0.2 accepted.
Preparing "Install Android SDK Build-Tools 26.0.2 (revision: 26.0.2)".
"Install Android SDK Build-Tools 26.0.2 (revision: 26.0.2)" ready.
Installing Android SDK Build-Tools 26.0.2 in /usr/local/android-sdk/build-tools/26.0.2
"Install Android SDK Build-Tools 26.0.2 (revision: 26.0.2)" complete.
"Install Android SDK Build-Tools 26.0.2 (revision: 26.0.2)" finished.
...
BUILD SUCCESSFUL in 3m 3s
Так что я думаю, что это и ошибка Трэвиса (ошибка пользовательского интерфейса при успешном выполнении через SSH), и ошибка инструментов Android (тянет старые инструменты сборки, не прося об этом).
1 ответ
Пожалуйста, добавьте ссылку на известную ошибку Multidex и воспроизведите ошибку в открытом примере проекта.
Проверьте этот вопрос, возможно, это поможет.
Вы можете добавить оба в .travis.yml
файл:
android:
components:
- build-tools-26.0.2
- build-tools-27.0.3
И вручную укажите версию инструментов сборки в вашем build.gradle
файл:
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
Я не уверен, что вы уже делаете это:
Но даже если мы вручную указываем инструменты сборки, он все равно пытается получить более старую версию во время мультидекса.