我们在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) 我似乎无法从命令行获取Gradle命令来使用API 23 Google API模拟器图像(Google APIs ARM (armeabi-v7a)) - 我总是得到一个com.android.ddmlib.ShellCommandUnresponsiveException.
重现步骤:
Google APIs ARM (armeabi-v7a)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问题:
android android-emulator android-studio android-gradle-plugin
我尽力用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) 我发现了特拉维斯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)