繁体   English   中英

在Jenkins Linux EC2上的Android模拟器中安装APK时发生TimeoutException

[英]TimeoutException when installing apk in android emulator on Jenkins Linux EC2

我的雇主已将Jenkins配置为在需要为Android应用程序运行自动化GUI测试时自动在Amazon EC2上启动Jenkins从属服务器。

目前,我们正在使用Android 2.2,因为它可以在当前的Jenkins从属设备上很好地运行。 SDK版本使用API​​ 8,超过该版本的任何时间都会尝试启动模拟器。

我们希望放弃对Android 4.0之前的任何版本的支持。

我正在更新基础架构,以使用API​​ 15在模拟器上运行这些自动化GUI测试。

我们正在研究Ravello,它通过KVM提供硬件辅助的加速。 它使用x86系统映像以及android64-x86二进制工具运行。

当前,尝试安装apk时会引发异常。 我已经用Google搜索了它,但看不到有人遇到相同的错误。 我使用grepcode.com查看了异常堆栈跟踪正在打印的代码。 昨天,我看到从adb读取数据似乎有问题,所以我认为也许我的SD卡太大,并将其减小到50M。 昨天工作正常,测试开始运行,但随后挂在测试套件中的一个测试上,可能是57个测试套件中的20个测试。

然后,我@Suppress编辑了该测试,现在我遇到了这个异常。 删除@Suppress离子现在不会更改任何内容:它始终无法安装。

有没有人看过或有关于如何解决此问题的建议?

这是错误日志:


[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.1.1:internal-pre-integration-test (default-internal-pre-integration-test) on project ravenousity-android-test: Install of /mnt/workspace/workspace/lyndsey-ferguson_DR-1543-update-android-version_android-dynamic-grids/m2-repo/com/ravenousity/ravenousity-android/2.6.1-SNAPSHOT/ravenousity-android-2.6.1-SNAPSHOT.apk failed. InstallException: TimeoutException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.1.1:internal-pre-integration-test (default-internal-pre-integration-test) on project ravenousity-android-test: Install of /mnt/workspace/workspace/lyndsey-ferguson_DR-1543-update-android-version_android-dynamic-grids/m2-repo/com/ravenousity/ravenousity-android/2.6.1-SNAPSHOT/ravenousity-android-2.6.1-SNAPSHOT.apk failed.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Install of /mnt/workspace/workspace/lyndsey-ferguson_DR-1543-update-android-version_android-dynamic-grids/m2-repo/com/ravenousity/ravenousity-android/2.6.1-SNAPSHOT/ravenousity-android-2.6.1-SNAPSHOT.apk failed.
    at com.jayway.maven.plugins.android.AbstractAndroidMojo$1.doWithDevice(AbstractAndroidMojo.java:521)
    at com.jayway.maven.plugins.android.AbstractAndroidMojo.doWithDevices(AbstractAndroidMojo.java:607)
    at com.jayway.maven.plugins.android.AbstractAndroidMojo.deployApk(AbstractAndroidMojo.java:513)
    at com.jayway.maven.plugins.android.AbstractAndroidMojo.deployDependencies(AbstractAndroidMojo.java:541)
    at com.jayway.maven.plugins.android.phase11preintegrationtest.InternalPreIntegrationTestMojo.execute(InternalPreIntegrationTestMojo.java:36)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 19 more
Caused by: com.android.ddmlib.InstallException
    at com.android.ddmlib.Device.installPackage(Device.java:586)
    at com.jayway.maven.plugins.android.AbstractAndroidMojo$1.doWithDevice(AbstractAndroidMojo.java:516)
    ... 25 more
Caused by: com.android.ddmlib.TimeoutException
    at com.android.ddmlib.AdbHelper.read(AdbHelper.java:648)
    at com.android.ddmlib.SyncService.doPushFile(SyncService.java:688)
    at com.android.ddmlib.SyncService.pushFile(SyncService.java:375)
    at com.android.ddmlib.Device.syncPackageToDevice(Device.java:607)
    at com.android.ddmlib.Device.installPackage(Device.java:577)
    ... 26 more

我的同事JayB认为:

使用maven-android-plugin的4.0.0-rc.3版本,可以配置adb连接超时。 使用该插件的3.1.1版本,无法执行此操作。

[..snip ..我们目前无法使用4.0.0-rc.3。

相反,我克隆了maven android插件,从3.1.1版本创建了一个分支,并添加了一行代码对60秒的超时进行硬编码,安装了该插件的更新版本为3.1.1。版本。 -1在本地存储库中,并使用它来构建。 在该配置中,构建过程是通过安装应用程序并开始测试而完成的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM