首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Travis CI上使用构建矩阵来设置运行API 25的模拟器?

如何在Travis CI上使用构建矩阵来设置运行API 25的模拟器?
EN

Stack Overflow用户
提问于 2017-07-14 10:08:33
回答 1查看 1.8K关注 0票数 11

我试图设置Travis CI,以便它在运行API 25的仿真器上运行测试。Travis在API 4/10/19上运行测试以完成测试,但未能启动API 25的仿真器,其中包含以下消息:

代码语言:javascript
复制
$ echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
Valid ABIs: no ABIs.
Error: Invalid --abi armeabi-v7a for the selected target.

android list targets的输出显示API 19模拟器有一个标记/ABI,而API 25模拟器没有:

代码语言:javascript
复制
id: 7 or "android-19"
     Name: Android 4.4.2
     Type: Platform
     API level: 19
     Revision: 4
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : default/armeabi-v7a

id: 11 or "android-25"
     Name: Android 7.1.1
     Type: Platform
     API level: 25
     Revision: 3
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : no ABIs.

如何解决这个问题,以便API 25模拟器启动并运行测试?

完整的.travis.yml文件如下:

代码语言:javascript
复制
language: android

android:
  components:
    - tools
    - platform-tools
    - tools # appears twice as per Travis docs
    - build-tools-23.0.1
    - build-tools-25.0.2
    - android-4
    - android-10
    - android-19
    - android-23
    - android-25
    - extra-android-m2repository
    - sys-img-armeabi-v7a-android-25

env:
  matrix:
    - ANDROID_TARGET=android-4 ANDROID_ABI=armeabi
    - ANDROID_TARGET=android-10 ANDROID_ABI=armeabi
    - ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a
    - ANDROID_TARGET=android-25 ANDROID_ABI=armeabi-v7a

before_script:
  # Create and start emulator
  - android list targets
  - jdk_switcher use oraclejdk8
  - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
  - emulator -avd test -no-skin -no-audio -no-window &
  - adb wait-for-device
  - while [[ `adb shell pm path android` == 'Error'* ]]; do sleep 2; done
  - adb shell input keyevent 82 &

script: ./gradlew --info connectedAndroidTest

sudo: false
EN

回答 1

Stack Overflow用户

发布于 2017-07-18 21:17:24

注意:仿真器版本26.1.4+版本可以引入或修复bug。如果需要可重复的ci构建,最好的选择是通过android组件下载所需的sdk-tools版本no。

注意:模拟器版本26.1.3是这里,包括有趣的修复。我现在正忙着修改我的答案:

相关问题使用模拟器26.1.2 这里。重新启动最后一次构建像我一样,使用26.1.3并祈祷,绿色

我试图设置Travis CI,以便它在运行API 25的仿真器上运行测试。Travis在API 4/10/19上运行测试,但未能启动API 25的模拟器. 如何解决这个问题,以便API 25模拟器启动并运行测试?

更新:I确认在Android中也缺少适用于API 23、25和26的ARM ABI,因此:

  • 这不是特拉维斯-奇的问题。我在当地复制了它,如下一张图片所示。
  • 您可以使用ARM ABI的API-24.我分叉了你的项目,它在第6版(下一张图片)中工作。
  • 您可以为API-25使用Google APIs映像,如下面使用新的sdkmanager1解释的那样。
  • 如果您知道img名称:123.,您可以使用遗留工具使用API-25的Google API映像。
  • 我们需要问谷歌或其他人为什么缺少这些API的ARM ABI。

更新: 一个相关的错误已经向谷歌报告并讨论了这里,请点击:

由于某种原因,它被标记为只能在窗口上使用。我不确定这是ADRT本身的问题,还是这个包的配置问题,但从快速的角度来看,它可能是adrt本身的一个问题。

我不确定api-25问题是否相关,但我希望它能够结合几种解决方案:

  • 使用google_apis的系统映像来简化构建矩阵,避免缺少ABI。
  • 使用最新的Sdk工具所需的新sdkmanageravdmanager
  • 使用新的、可靠的映像,包括这些工具来简化Travis-ci的配置,或者使用dist: precise作为解释的这里

请参阅下面的链接到使用包含Api-25仿真器的构建矩阵的工作示例。

有一次,我通过Android在macbook上更新了API23System映像,我的计算机不支持新版本,所以我使用了google_apis one。

我为问题提供了一个可能的解决方案,由Ashish (我也是这里 )评论。

我需要更新我的反应,以支持新的Travis-ci图像,与新的SDK工具。

新的预装Sdk工具将简化解决方案并减少YAML文件的大小。

正如Carmen Andoh和Dominic Jodoin于2017年6月19日宣布的在这篇博客文章中

所有Ubuntu可信任的14.04图像都有更新 这个新一代的可靠映像已经在生产中可用,可以通过在.travis.yml文件中添加group: edge来使用:

代码语言:javascript
复制
sudo: required
dist: trusty

group: edge  # Add this

正如所解释的,这里

作为更多的信息,这个新的Android映像附带: Android 25.2.3构建工具-25.0.2 新的sdkmanager工具--一个命令行工具,允许您查看、安装、更新和卸载Android的软件包。替换以前的android工具,请参阅https://developer.android.com/studio/tools/help/android.html。 此外,新的安卓形象应该是复古兼容的。请参阅可以在.travis.yml文件中指定的Android组件的完整列表,包括build 26.0.0-预览。

但是他们没有使用新的avdmanager,我将在这个周末尝试修复它。

或者,您可以通过添加dist: precise来使用前面的图像。

在图像更新之前,下面的行是我对一个相关问题的回答是:的一部分:

使用用于Android 22至25级的约束布局代码存储库的完整工作示例:

使用sdkmanageravdmanager的另外两个示例

参考资料

自动下载缺少的带Gradle的包有关的正式文件

新型模拟器选项在从命令行启动模拟器中解释

avdmanager 在此解释取代自SDK工具25.3.0版以来的android avd

sdkmanager 在此解释还增强了以查看和接受命令行中的所有许可证。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45100298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档