Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于multidex/android错误导致Travis中的构建失败?_Android_Android Gradle Plugin_Travis Ci_Android Multidex - Fatal编程技术网

由于multidex/android错误导致Travis中的构建失败?

由于multidex/android错误导致Travis中的构建失败?,android,android-gradle-plugin,travis-ci,android-multidex,Android,Android Gradle Plugin,Travis Ci,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/in

我们在项目中没有使用构建工具“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无法完成我们的构建(
未能找到构建工具修订版26.0.2
,因为我们的
.Travis.yml
指定了我们实际使用的
ANDROID构建工具版本=27.0.3
在多重索引期间拉取早期工具版本是否是已知的多重索引错误?请注意,这不是在进行过程中,因为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

因此,我猜这可能是Travis错误(通过SSH成功时在UI上失败)和Android工具错误(在没有要求的情况下使用较旧的构建工具)。

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

查查,也许有帮助

您可以在
.travis.yml
文件中添加这两个选项:

android:
 components:
  - build-tools-26.0.2
  - build-tools-27.0.3
android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"
并在
build.gradle
文件中手动指定生成工具版本:

android:
 components:
  - build-tools-26.0.2
  - build-tools-27.0.3
android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"
我不确定您是否已经这样做了:

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


谢谢,指定
-build-tools-26.0.2
可以解决这个问题。(尽管这是必需的,但仍然很奇怪。我应该尝试为它创建一个bug报告。)谢谢,添加“build-tools-26.0.2”解决了构建问题。:)