Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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
Android 在gitlab中为项目执行CI/CD时出错_Android_Gitlab Ci - Fatal编程技术网

Android 在gitlab中为项目执行CI/CD时出错

Android 在gitlab中为项目执行CI/CD时出错,android,gitlab-ci,Android,Gitlab Ci,我需要配置gitlab的CI/CD服务。因此,我创建了一个文件.gitlab ci.yml image: openjdk:8-jdk variables: ANDROID_COMPILE_SDK: "26" ANDROID_BUILD_TOOLS: "26.0.2" before_script: - apt-get --quiet update --yes - apt-get --quiet install --yes wget tar unzip lib32stdc++6

我需要配置gitlab的CI/CD服务。因此,我创建了一个文件
.gitlab ci.yml

image: openjdk:8-jdk

variables:
  ANDROID_COMPILE_SDK: "26"
  ANDROID_BUILD_TOOLS: "26.0.2"

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
  - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/tools_r${ANDROID_SDK_TOOLS}-linux.zip
  - unzip android-sdk.zip
  - export ANDROID_HOME=$PWD/
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter android-${ANDROID_COMPILE_SDK}
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter platform-tools
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter build-tools-${ANDROID_BUILD_TOOLS}
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-android-m2repository
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-google-google_play_services
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-google-m2repository
  - export PATH=$PATH:$ANDROID_HOME
  - chmod +x ./gradlew

stages:
  - build

build:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
    - app/build/outputs/
我只需要在云中构建一个工件而不需要测试。所以,在主机提交之后,cd管道开始执行,并失败。下载sdk时始终失败:

.....
Preparing to unpack .../libc6-i386_2.24-11+deb9u1_amd64.deb ...
Unpacking libc6-i386 (2.24-11+deb9u1) ...
Selecting previously unselected package lib32z1.
Preparing to unpack .../lib32z1_1%3a1.2.8.dfsg-5_amd64.deb ...
Unpacking lib32z1 (1:1.2.8.dfsg-5) ...
Selecting previously unselected package lib32gcc1.
Preparing to unpack .../lib32gcc1_1%3a6.3.0-18_amd64.deb ...
Unpacking lib32gcc1 (1:6.3.0-18) ...
Selecting previously unselected package lib32stdc++6.
Preparing to unpack .../lib32stdc++6_6.3.0-18_amd64.deb ...
Unpacking lib32stdc++6 (6.3.0-18) ...
Setting up libc6-i386 (2.24-11+deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ...
Setting up lib32z1 (1:1.2.8.dfsg-5) ...
Setting up lib32gcc1 (1:6.3.0-18) ...
Setting up lib32stdc++6 (6.3.0-18) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ...
$ wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/tools_r${ANDROID_SDK_TOOLS}-linux.zip
ERROR: Job failed: exit code 1

您没有在
wget
中使用的变量
ANDROID\u SDK\u工具
,您只有:

  • ANDROID\u构建工具
  • ANDROID\u COMPILE\u SDK

    • 以下配置设置对我有效。Gitlab似乎没有更新默认的.yml文件。更多详情见


      $android sdk linux/tools/bin/sdkmanager--update>update.log
      警告:无法加载文件/root/.android/repositories.cfg。
      $android sdk linux/tools/bin/sdkmanager“平台;android-${android_COMPILE_sdk}”构建工具;${android_build_tools}”附加;谷歌;m2repository“附加;android;m2repository”>installPlatform.log
      警告:无法加载文件/root/.android/repositories.cfg。
      $export-ANDROID\u HOME=$PWD/ANDROID-sdk-linux
      $export PATH=$PATH:$PWD/android sdk linux/platform tools/
      $chmod+x./gradlew
      $。/gradlew assembleDebug
      错误:无法找到或加载主类org.gradle.wrapper.GradleWrapperMain

      错误:作业失败:退出代码1

      是的,我忘记了。但是当我像这样添加这个变量时:
      variables:ANDROID\u COMPILE\u SDK:“26”ANDROID\u BUILD\u TOOLS:“26.0.2”ANDROID\u SDK\u TOOLS:“26.0.2”
      wget
      上再次失败
      $wget--quiet--output document ANDROID-SDK.ziphttps://dl.google.com/android/repository/tools_r${ANDROID\u SD‌​K_TOOLS}-linux.zip错误:作业失败:退出代码1
      请删除wget上的--quiet并发布错误
      --2018-01-02 15:08:33--https://dl.google.com/android/repository/tools_r26.0.2-linux.zip 正在解析dl.google.com(dl.google.com)。。。74.125.141.190, 74.125.141.91, 74.125.141.93, ... 连接到dl.google.com(dl.google.com)| 74.125.141.190 |:443。。。有联系的。HTTP请求已发送,正在等待响应。。。404找不到2018-01-02 15:08:33错误404:找不到。
      我考虑过类似的问题。事实证明,下载Android SDK工具是不可能的。所以这个链接是不正确的:谢谢,我正在尝试它,请期待新的答案(在它我的地方这个脚本的日志)
      image: openjdk:8-jdk
      
      cache:
        paths:
          - .m2/
          - .gradle/
      
      variables:
        ANDROID_COMPILE_SDK: "26"
        ANDROID_BUILD_TOOLS: "26.0.2"
        ANDROID_SDK_TOOLS: "26.0.2"
      
      
      before_script:
        - apt-get --quiet update --yes
        - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
      
        - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
        - unzip -q android-sdk.zip -d android-sdk-linux
      
        - mkdir android-sdk-linux/licenses
        - printf "8933bad161af4178b1185d1a37fbf41ea5269c55\nd56f5187479451eabf01fb78af6dfcb131a6481e" > android-sdk-linux/licenses/android-sdk-license
        - android-sdk-linux/tools/bin/sdkmanager --update > update.log
        - android-sdk-linux/tools/bin/sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" "build-tools;${ANDROID_BUILD_TOOLS}" "extras;google;m2repository" "extras;android;m2repository" > installPlatform.log
      
        - export ANDROID_HOME=$PWD/android-sdk-linux
        - export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
        - chmod +x ./gradlew
      
      stages:
        - build
        - test
      
      build:
        stage: build
        script:
          - ./gradlew assembleDebug
        artifacts:
          paths:
          - app/build/outputs/
      
      unitTests:
        stage: test
        script:
          - ./gradlew test