簡體   English   中英

命令“ echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a”失敗,並在執行過程中以1退出

[英]The command “echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a” failed and exited with 1 during

Travis是Android開發中的一個新功能,由於我指出的錯誤標題,我的構建失敗了,我一直在閱讀文檔,並嘗試實現它,但仍然失敗。

我失敗的構建的鏈接如下https://travis-ci.org/huxaiphaer/ConvergeLevelApp

以下是Travis上的錯誤。

$ java -Xmx32m -version

java version "1.8.0_144"

Java(TM) SE Runtime Environment (build 1.8.0_144-b01)

Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

$ javac -J-Xmx32m -version

javac 1.8.0_144

0.46s$ echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a

Error: Target id is not valid. Use 'android list targets' to get the target ids.

The command "echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a" failed and exited with 1 during .

Your build has been stopped.

鏈接到構建

然后下面是我的.travis.yml文件

    # Disabling sudo moves build to the Container Based Infrastructure on Travis CI

language: android
jdk: oraclejdk8

env:
  global:
    # wait up to 10 minutes for adb to connect to emulator
    - ADB_INSTALL_TIMEOUT=10

android:
  components:
    # Uncomment the lines below if you want to
    # use the latest revision of Android SDK Tools
    - platform-tools
    - tools

    # The BuildTools version used by your project
    - build-tools-26.0.2

    # The SDK version used to compile your project
    - android-26
    - extra
    # Additional components
    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    - extra-android-support

    # Specify at least one system image,
    # if you need to run emulator(s) during your tests
    - sys-img-armeabi-v7a-android-22

  licenses:
    - 'android-sdk-preview-license-52d11cd2'
    - 'android-sdk-license-.+'
    - 'google-gdk-license-.+'

# start Android emulator

bedfore_install:
  - yes | sdkmanager "platforms;android-22"
  - ./gradlew build connectedCheck
  - chmod +x ./gradlew

before_script:
  - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
  - emulator -avd test -no-audio -no-window &
  - android-wait-for-emulator
  - adb shell input keyevent 82 &

notifications:
  email: true

cache:
  directories:
    - $HOME/.m2
    - $HOME/.gradle
    - $HOME/.android
    - ${TRAVIS_BUILD_DIR}/gradle/caches/
    - ${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/

我實現的解決方案之一是使用before_script的以下命令列出目標ID

 - android list targets

我得到了以下列表,但我不知道:

錯誤圖片

這是我的build.gradle文件

apply plugin: 'com.android.application'
apply plugin: 'jacoco'


jacoco {
    toolVersion = '0.8.0'
}

tasks.withType(Test) {
    jacoco.includeNoLocationClasses = true
}

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {

    reports {
        xml.enabled = true
        html.enabled = true
    }

    def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*']
    def debugTree = fileTree(dir: "$project.buildDir/intermediates/classes/debug", excludes: fileFilter)
    def mainSrc = "$project.projectDir/src/main/java"

    sourceDirectories = files([mainSrc])
    classDirectories = files([debugTree])
    executionData = fileTree(dir: project.buildDir, includes: [
            'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec'
    ])
}


android {

    adbOptions {
        timeOutInMs 60 * 1000
    }

    compileSdkVersion 28
    defaultConfig {
        applicationId "com.levelapp.converge.convergelevelapp"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        debug {
            testCoverageEnabled true
        }

        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    testOptions {
        execution 'ANDROID_TEST_ORCHESTRATOR'
        animationsDisabled true

        unitTests {
            includeAndroidResources = true
        }
    }
}


dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:animated-vector-drawable:28.0.0'
    implementation 'com.android.support:exifinterface:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    androidTestUtil 'com.android.support.test:orchestrator:1.0.2-alpha1'
    testImplementation 'junit:junit:4.12'
    testImplementation 'org.robolectric:robolectric:3.7.1'
    implementation 'com.squareup.retrofit2:retrofit:2.5.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    implementation 'com.koushikdutta.ion:ion:2.+'
    implementation 'com.mikhaellopez:circularimageview:3.2.0'
}

似乎您忘了添加仿真器依賴性,這就是為什么找不到有效的ABI的原因。 要運行模擬器,您需要安裝android-22平台才能使模擬器正常工作:

android: 
  components: 
    - ...
    # Specify at least one system image,
    # if you need to run emulator(s) during your tests
    - android-22
    - sys-img-armeabi-v7a-android-22
    - ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM