我试图在通过以太网连接的设备(非手持设备)上运行测试,但我看到的只是失败.我使用gradle任务connectedAndroidTest来运行仪器测试,并且在通过USB连接到我的PC的手持设备上工作正常.但是,甚至无法在远程设备上启动相同的测试.显示的错误是"未找到测试".以前我看到相同的错误,如果我在没有连接任何设备的情况下启动仪器测试,但Android Studio以及adb设备的输出显示工具链可以看到远程设备.然后我尝试在命令行上运行相同的gradle任务,并提供更多信息.所以我进入了:
gradlew connectedAndroidTest --stacktrace --debug
在一堆调试输出中,我找到了更好的错误描述:
[INFO] [org.gradle.api.Project]'AppNameHere:'跳过设备'DEVICE_IP:5555':未知API级别
[警告] [org.gradle.api.Project]
_FoundCompatibleDevices [TestRunner]失败
我在谷歌搜索了这个错误,我偶然发现了打印它的源代码.所以我下载了android的平台工具源代码,以便能够更轻松地浏览它,在我看来,通过读取属性IDevice.PROP_BUILD_API_LEVEL来检测API级别,这似乎等于"ro.build.version.sdk" ".经过一些谷歌搜索后,我发现它应该在/system/build.prop中定义.设备上此文件的内容显示它具有正确的API级别19.实际上,Android Studio中显示相同的API级别,显示当前连接设备的android选项卡(以及它们的logcat输出,打开进程等) .但是,在某些情况下,这个值似乎没有得到正确的解释.
知道事情可能出错吗?我应该在哪里寻找真正的问题?在Android的工具链中,Android在设备上,在调查过程中出了什么问题?
我目前正在使用:
- Windows 7
- Android Studio 1.1预览1
- Android SDK工具24.0.2
- Android SDK平台 - 工具21
- Android SDK Build-tools 19.1
所以我在让我的 robotsium 集成测试在远程 jenkins 服务器上运行时遇到了同样的问题。我最终通过将 local.properties 文件添加到远程 android 项目根目录并添加 sdk 路径来修复它。对我来说,它看起来像这样。
sdk.dir=/usr/local/sdk
Run Code Online (Sandbox Code Playgroud)
然后我收到设备未连接错误,所以我必须运行
/pathToAndroidSdk/platform-tools/adb start-server
Run Code Online (Sandbox Code Playgroud)
并验证我插入的设备。在此过程中我已经失去了大部分头发,但现在集成测试正在正常运行。
如果您还有其他问题,请告诉我。
| 归档时间: |
|
| 查看次数: |
6416 次 |
| 最近记录: |