Сбой сборки в 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"

Я не уверен, что вы уже делаете это:

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

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