相关疑难解决方法(0)

使用ShellCommandUnresponsiveException在Travis上进行Android测试失败

我们在Travis的Android项目的第一次甚至第二次执行拉取请求时看到很多构建失败.但是,如果我们重新启动完全相同的构建,它最终会通过.

这是失败时的错误:

:onebusaway-android:connectedAndroidTest
09:48:14 E/Device: Error during shell execution: null
Unable to install /home/travis/build/OneBusAway/onebusaway-android/onebusaway-android/build/outputs/apk/onebusaway-android-debug.apk
com.android.ddmlib.InstallException
at com.android.ddmlib.Device.installPackages(Device.java:927)
at com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:105)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:125)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:48)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.ddmlib.ShellCommandUnresponsiveException
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:513)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:390)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:359)
at com.android.ddmlib.Device.executeShellCommand(Device.java:566)
at com.android.ddmlib.Device.createMultiInstallSession(Device.java:987)
at com.android.ddmlib.Device.installPackages(Device.java:884)
... 9 more
com.android.builder.testing.ConnectedDevice > runTests[test(AVD) - 5.0.1] FAILED 
com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException
    at com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:108)
null
com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException
at com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:108)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:125)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:48)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) …
Run Code Online (Sandbox Code Playgroud)

android travis-ci

20
推荐指数
1
解决办法
6338
查看次数

API 23 Google API仿真器映像上的Gradle命令失败(armeabi-v7a)

我似乎无法从命令行获取Gradle命令来使用API​​ 23 Google API模拟器图像(Google APIs ARM (armeabi-v7a)) - 我总是得到一个com.android.ddmlib.ShellCommandUnresponsiveException.

重现步骤:

  1. 使用API​​ 23创建AVD Google APIs ARM (armeabi-v7a)
  2. 克隆https://github.com/googlemaps/android-maps-utils(或使用您自己的项目)
  3. 运行gradlew installDebug命令行

你会看到的:

:demo:assembleDebug:demo:installDebug FAILED

FAILURE:构建因异常而失败.

  • 什么地方出了错:

任务':demo:installDebug'的执行失败.com.android.builder.testing.api.DeviceException:com.android.ddmlib.ShellCommandUnresponsiveException

如果你跑,gradlew connectedCheck你会看到类似的错误:

  • 出了什么问题:任务执行失败':library:connectedDebugAndroidTest'.com.android.builder.testing.api.TestException:com.android.builder.testing.api.DeviceException:com.android.ddmlib.ShellCommandUnresponsiveException

可以安装/运行Android Studio(1.4)中的项目和测试,没有任何问题.

从命令行,Gradle命令似乎在API 21 Google API仿真器映像上正常运行.

以下是Travis for API 23 Google API模拟器映像的示例失败:

https://travis-ci.org/barbeau/android-maps-utils/builds/83233500

...以及使用API​​ 21 Google API仿真器映像时的成功构建示例:

https://travis-ci.org/barbeau/android-maps-utils/builds/83234555

这两个版本之间的唯一区别是Google API模拟器API级别为23对21:

https://github.com/barbeau/android-maps-utils/commit/a5eecd7e7a4fc899ecd5eaeae6826414fefeae70

编辑

我在这里就这个问题打开了一个AOSP问题:

https://code.google.com/p/android/issues/detail?id=190200

android android-emulator android-studio android-gradle-plugin

13
推荐指数
1
解决办法
4410
查看次数

com.android.builder.testing.ConnectedDevice> hasTests [test(AVD) - 5.0] FAILED

我尽力用gradle测试我的android项目,但失败了.你可以帮帮我吗?谢谢.这是我的项目:https: //github.com/SnowdreamFramework/android-log ,我提供了我的错误日志与附件.

[0K$ echo no | android create avd --force -n test -t android-21 --abi armeabi-v7a
Android 5.0 is a basic Android platform.
Do you wish to create a custom hardware profile [no]Created AVD 'test' based on Android 5.0, ARM (armeabi-v7a) processor,
with the following hardware config:
hw.cpu.model=cortex-a8
hw.lcd.density=240
hw.ramSize=512
vm.heapSize=48
travis_time:end:0d68df50:start=1416651329874810477,finish=1416651333337412612,duration=3462602135
[0Ktravis_fold:end:before_script.4
[0Ktravis_fold:start:before_script.5
[0Ktravis_time:start:15d80c70
[0K$ emulator -avd test -no-skin -no-audio -no-window &
travis_time:end:15d80c70:start=1416651333347425441,finish=1416651333353869405,duration=6443964
[0Ktravis_fold:end:before_script.5
[0Ktravis_fold:start:before_script.6
[0Ktravis_time:start:01e4ff4d
[0K$ android-wait-for-emulator
Creating filesystem with parameters:
    Size: 69206016
    Block size: …
Run Code Online (Sandbox Code Playgroud)

testing android gradle travis-ci

11
推荐指数
1
解决办法
6955
查看次数

无法配置travis在android项目上工作

我发现了特拉维斯CI的几个问题,我一直在解决它们,但最后一个我不能解决它们.

我遇到了常见的错误 com.android.ddmlib.InstallException: Failed to establish session

这是我的travis文件:

language: android

before_install:
 - chmod +x gradlew

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
    - tools
    - build-tools-23.0.3

    # Additional components
    - extra-google-m2repository
    - extra-android-m2repository

    # The SDK version used to compile your project
    - android-23

    # Specify at least one system image,
    # if …
Run Code Online (Sandbox Code Playgroud)

android build travis-ci

5
推荐指数
1
解决办法
1240
查看次数