Android 由于连接AndroidTestDebug TimeoutException,在 Jenkins 中构建失败
Android build failing in Jenkins due to connectedAndroidTestDebug TimeoutException
尝试在真实 android 设备上部署测试时,我当前的 Jenkins 构建失败。
我发现有些人在 Travis 上有类似的问题,但我找不到很多人在 Jenkins 上报告它。
正如您在 gradle 输出的错误中看到的那样,这是由尝试安装测试时触发的 TimeoutException 引起的:
:library:connectedAndroidTestDebug
11:20:37 E/Device: Error during Sync: timeout.
Unable to install /Users/Shared/Jenkins/Home/jobs/WORKSPACE_PATH/build/outputs/apk/library-debug-androidTest-unaligned.apk
com.android.ddmlib.InstallException
at com.android.ddmlib.Device.installPackage(Device.java:853)
at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:91)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:143)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:49)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.ddmlib.TimeoutException
at com.android.ddmlib.AdbHelper.read(AdbHelper.java:769)
at com.android.ddmlib.SyncService.doPushFile(SyncService.java:695)
at com.android.ddmlib.SyncService.pushFile(SyncService.java:380)
at com.android.ddmlib.Device.syncPackageToDevice(Device.java:1069)
at com.android.ddmlib.Device.installPackage(Device.java:844)
... 9 more
com.android.builder.testing.ConnectedDevice > runTests[Nexus 4 - 4.4.4] [31mFAILED [0m
com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException
at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:95)
null
com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException
at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:95)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:143)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:49)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.ddmlib.InstallException
at com.android.ddmlib.Device.installPackage(Device.java:853)
at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:91)
... 8 more
Caused by: com.android.ddmlib.TimeoutException
at com.android.ddmlib.AdbHelper.read(AdbHelper.java:769)
at com.android.ddmlib.SyncService.doPushFile(SyncService.java:695)
at com.android.ddmlib.SyncService.pushFile(SyncService.java:380)
at com.android.ddmlib.Device.syncPackageToDevice(Device.java:1069)
at com.android.ddmlib.Device.installPackage(Device.java:844)
... 9 more
:library:connectedAndroidTestDebug FAILED
FAILURE: Build failed with an exception.
我尝试调用 Gradle Wrapper,这对在作业配置中指定版本没有影响 - 我尝试了 Gradle 2.5-rc-1、Gradle 2.3 和 Gradle 2.2.1,最后一个适用于两个构建,然后开始返回同样的超时错误。
我也试过设置环境变量:
export ADB_INSTALL_TIMEOUT=10
在 build.gradle 中设置 com.android.ddmlib.DdmPreferences.setTimeOut 参数:
com.android.ddmlib.DdmPreferences.setTimeOut(60000)
还尝试使用 adbOption 'timeOutInMs',但均无效。
android {
adbOptions {
timeOutInMs 60000 // set timeout to 1 minute
}
}
这似乎是 code.google.com 中的一个持续问题 - 以下两个线程似乎与它有关:
- 问题 1:com.android.builder.testing.ConnectedDevice.getDeviceConfig has a hard coded timeout value that is too low
- 问题 2:Allow the user to increase the ADB timeout
我还有什么想法可以尝试吗?
谢谢!
我终于修复了它 restarting the adb server 并发出任何其他 adb 命令,例如请求设备列表。
只需 运行 来自终端的以下命令:
adb kill-server
adb devices
希望对您有所帮助!
尝试在真实 android 设备上部署测试时,我当前的 Jenkins 构建失败。
我发现有些人在 Travis 上有类似的问题,但我找不到很多人在 Jenkins 上报告它。
正如您在 gradle 输出的错误中看到的那样,这是由尝试安装测试时触发的 TimeoutException 引起的:
:library:connectedAndroidTestDebug
11:20:37 E/Device: Error during Sync: timeout.
Unable to install /Users/Shared/Jenkins/Home/jobs/WORKSPACE_PATH/build/outputs/apk/library-debug-androidTest-unaligned.apk
com.android.ddmlib.InstallException
at com.android.ddmlib.Device.installPackage(Device.java:853)
at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:91)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:143)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:49)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.ddmlib.TimeoutException
at com.android.ddmlib.AdbHelper.read(AdbHelper.java:769)
at com.android.ddmlib.SyncService.doPushFile(SyncService.java:695)
at com.android.ddmlib.SyncService.pushFile(SyncService.java:380)
at com.android.ddmlib.Device.syncPackageToDevice(Device.java:1069)
at com.android.ddmlib.Device.installPackage(Device.java:844)
... 9 more
com.android.builder.testing.ConnectedDevice > runTests[Nexus 4 - 4.4.4] [31mFAILED [0m
com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException
at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:95)
null
com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException
at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:95)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:143)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:49)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.ddmlib.InstallException
at com.android.ddmlib.Device.installPackage(Device.java:853)
at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:91)
... 8 more
Caused by: com.android.ddmlib.TimeoutException
at com.android.ddmlib.AdbHelper.read(AdbHelper.java:769)
at com.android.ddmlib.SyncService.doPushFile(SyncService.java:695)
at com.android.ddmlib.SyncService.pushFile(SyncService.java:380)
at com.android.ddmlib.Device.syncPackageToDevice(Device.java:1069)
at com.android.ddmlib.Device.installPackage(Device.java:844)
... 9 more
:library:connectedAndroidTestDebug FAILED
FAILURE: Build failed with an exception.
我尝试调用 Gradle Wrapper,这对在作业配置中指定版本没有影响 - 我尝试了 Gradle 2.5-rc-1、Gradle 2.3 和 Gradle 2.2.1,最后一个适用于两个构建,然后开始返回同样的超时错误。
我也试过设置环境变量:
export ADB_INSTALL_TIMEOUT=10
在 build.gradle 中设置 com.android.ddmlib.DdmPreferences.setTimeOut 参数:
com.android.ddmlib.DdmPreferences.setTimeOut(60000)
还尝试使用 adbOption 'timeOutInMs',但均无效。
android {
adbOptions {
timeOutInMs 60000 // set timeout to 1 minute
}
}
这似乎是 code.google.com 中的一个持续问题 - 以下两个线程似乎与它有关:
- 问题 1:com.android.builder.testing.ConnectedDevice.getDeviceConfig has a hard coded timeout value that is too low
- 问题 2:Allow the user to increase the ADB timeout
我还有什么想法可以尝试吗?
谢谢!
我终于修复了它 restarting the adb server 并发出任何其他 adb 命令,例如请求设备列表。
只需 运行 来自终端的以下命令:
adb kill-server
adb devices
希望对您有所帮助!