由于multidex / android bug导致Travis失败?

时间:2018-01-29 19:44:44

标签: android android-gradle travis-ci multidex android-multidex

我们的项目中没有使用构建工具“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

这本身就是假的,它会导致Travis失败我们的构建(Failed to find Build Tools revision 26.0.2,因为我们的.travis.yml指定了我们实际使用的ANDROID_BUILD_TOOLS_VERSION=27.0.3在多重索引编制过程中是否已经提取了早期工具版本的已知multidex错误?另请注意,由于CBSandbox在其构建文件(minifyEnabled false中的-libraryjars输出让我想到了proguard)。

我们使用最新版本的gradle插件defaults to the latest build tools。但即使我们手动指定构建工具,它仍会尝试在multidex期间提取旧版本。

编辑:构建在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

所以我猜这是一个Travis错误(在通过SSH成功​​时在UI上失败)和一个Android工具错误(在没有要求的情况下提取旧的构建工具)。

1 个答案:

答案 0 :(得分:1)

请添加已知Multidex错误的链接,并在打开的示例项目中重现该错误。

检查this question,也许有帮助。

您可以在.travis.yml文件中添加:

android:
 components:
  - build-tools-26.0.2
  - build-tools-27.0.3

并在build.gradle文件中手动指定构建工具版本:

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"

我不确定你是否已经这样做了:

  

但即使我们手动指定构建工具,它仍然会尝试   在multidex期间拉一个旧版本。