【问题标题】:Could not create Android emulator: Failed to parse AVD config file无法创建 Android 模拟器:无法解析 AVD 配置文件
【发布时间】:2016-05-12 08:08:06
【问题描述】:

无头 Linux 64 位。 Jenkins 正在尝试创建 android 模拟器,但因以下设置而失败:

[android] Using Android SDK: /opt/android-sdk-linux
[android] Creating Android AVD: /var/lib/jenkins/.android/avd/hudson_en-US_120_768x1200_Google_Inc._Google_APIs_23_google_apis-x86.avd
[android] /opt/android-sdk-linux/tools/android create avd -f -a -s 768x1200 -n hudson_en-US_120_768x1200_Google_Inc._Google_APIs_23_google_apis-x86 -t "Google Inc.:Google APIs:23" --abi google_apis/x86_64
[android] Could not create Android emulator: Failed to parse AVD config file

还为同一设备尝试了其他 ABI:armeabi_v7 和 google_apis/x86

我正在尝试创建这样的设备,因为我需要 Google Play 服务。 我能够使用以下设置创建和运行模拟器:

[android] Using Android SDK: /opt/android-sdk-linux
[android] /opt/android-sdk-linux/tools/android create avd -f -a -s 768x1200 -n hudson_en-US_120_768x1200_android-23_armeabi-v7a -t android-23 --abi armeabi-v7a
[android] Creating Android AVD: /var/lib/jenkins/.android/avd/hudson_en-US_120_768x1200_Google_Inc._Google_APIs_23_google_apis-x86.avd
[android] Starting Android emulator
$ /opt/android-sdk-linux/tools/emulator -engine classic -ports 5730,5731 -report-console tcp:5847,max=60 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_120_768x1200_android-23_armeabi-v7a -no-snapshot-load -no-snapshot-save -no-window
[android] Emulator reported that the startup process is 'running'

但是这个模拟器不支持 Google Play 服务(更具体地说是 Google 地图),所以我不想要它。

【问题讨论】:

  • 有办法调试吗?

标签: android jenkins emulation


【解决方案1】:

我找到了临时解决方法:

使用 Android AVD 管理器在本地创建相同的设备(我是在我的个人笔记本电脑、MAC 上完成的)。 然后将这个新创建的设备复制到Linux服务器/var/lib/jenkins/.android/avd/文件夹(.ini.avd文件夹)。

它成功了,还支持谷歌地图。

【讨论】:

  • 据我所知,真正的问题在于 Jenkins 作为服务运行,而作为服务无法运行 sdk 工具。试图找出如何让 jenkins 以用户身份运行或授予访问权限以便它可以。你找到更好的方法了吗?我希望我的构建完全自动化,而不是让我每次都创建一个设备。
  • 被这个卡住了很长时间。谢谢!
  • @Gert 我已经有了这些文件: $ ls /var/lib/jenkins/.android/avd/ hudson_de-DE_160_HVGA_android-18_armeabi-v7a.avd hudson_en-US_240_WVGA_android-24_armeabi-v7a_mySuffix.avd hudson_de- DE_160_HVGA_android-18_armeabi-v7a.ini hudson_en-US_240_WVGA_android-24_armeabi-v7a_mySuffix.ini hudson_de-DE_160_HVGA_android-7.avd hudson_en-US_240_WVGA_android-24_mySuffix.avd hudson_de-DE_160_HVGA_android-7.ini hudson_en-US_240_WVGA_android-24_mySuffix.ini 跨度>
  • 错误:忽略未知包过滤器“sys-img-armeabi-v7a-android-23”警告:包过滤器删除了所有包。没有什么要安装的。请考虑在没有包过滤器的情况下再次尝试更新。 [android] 使用 Android SDK:/opt/android-sdk-linux [android] 创建 Android AVD:/var/lib/jenkins/workspace/android-build-demo/.android/avd/hudson_en-US_240_WVGA_android-23_armeabi-v7a_mySuffix。 avd [android] /opt/android-sdk-linux/tools/android 创建 avd -f -a -c 64M -s
  • WVGA800 -n hudson_en-US_240_WVGA_android-23_armeabi-v7a_mySuffix -t android-23 --abi armeabi-v7a [android] 无法创建 Android 模拟器:无法解析 AVD 配置文件已完成:NOT_BUILT
【解决方案2】:

我在 Mac book pro 13", macOS Sierra; 版本 10.12.3 中遇到了类似的问题。我删除了我之前添加的用于定位到 android sdk 和 gradle 的系统环境变量。当我使用 system environment variables 构建它时; Jenkins 下载了 sdk 并且运行正常。

也可以参考书Expert Android Studio by Murat Yener, Onur Dundar第10章:持续集成;他们展示了如何在 Jenkins 上进行构建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2018-05-28
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    相关资源
    最近更新 更多