由于多dex / 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

但这本身就是假的,它会导致 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 插件,默认为最新的构建工具。但即使我们手动指定构建工具,它仍然会尝试在 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

所以我想这既是一个特拉维斯错误(通过 SSH 成功时在 UI 上失败)也是一个 Android 工具错误(在没有要求的情况下拉取较旧的构建工具)。

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

检查这个问题,也许它会有所帮助。

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

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

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

android {
compileSdkVersion 27
buildToolsVersion "27.0.3"

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

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

最新更新