Android VTS 常見問題及解決辦法
阿新 • • 發佈:2019-01-04
基於Android8.1
Ubuntu 16.04
Python2.7
1. 目的
在網上找了下關於Android VTS的執行過程中, 遇到的問題都基本上沒有找到解決辦法。
在此記錄一些自己在生產過程中遇到的問題,希望幫到有需要的同仁,拋磚引玉,希望各位同仁提一些寶貴的建議和意見。謝謝~
2. 問題List
- error: Failed to create virtualenv
這個情況一般是檢查有virtualenv, 第二個是檢視host_log是否超時。超時的話可以修改如下檔案, mRunUtil.runTimedCmd(BASE_TIMEOUT * 1, “virtualenv”, virtualEnvPath); 修改BASE_TIMEOUT, 把 1 修改大一點即可
protected void startVirtualenv(IBuildInfo buildInfo) throws TargetSetupError {
if (mVenvDir != null) {
CLog.i("Using existing virtualenv based at %s", mVenvDir.getAbsolutePath());
activate();
return;
}
try {
mVenvDir = buildInfo. getFile(VIRTUAL_ENV_PATH);
if (mVenvDir == null) {
mVenvDir = FileUtil.createTempDir(getMD5(buildInfo.getTestTag()) + "-virtualenv");
}
String virtualEnvPath = mVenvDir.getAbsolutePath();
CommandResult c = mRunUtil.runTimedCmd(BASE_TIMEOUT * 1, "virtualenv", virtualEnvPath);
if (c.getStatus() != CommandStatus.SUCCESS) {
CLog.e(String.format("Failed to create virtualenv with : %s.", virtualEnvPath));
throw new TargetSetupError("Failed to create virtualenv");
}
CLog.i(VIRTUAL_ENV_PATH + " = " + virtualEnvPath + "\n");
buildInfo.setFile(VIRTUAL_ENV_PATH, new File(virtualEnvPath),
buildInfo.getBuildId());
activate();
} catch (IOException | RuntimeException e) {
CLog.e("Failed to create temp directory for virtualenv");
throw new TargetSetupError("Error creating virtualenv", e);
}
}
- Could not fetch URL https://pypi.python.org/simple/****/: connection error: HTTPSConnectionPool(host=‘pypi.python.org’, port=443)
這個一般是內網設定了代理問題, 需要加上代理就可以了。
sudo -H pip install -U pip -v --proxy http://*.*.*.*:xxx'
- JSONArray is null. and not found
這個是在建立virtualenv環境的沒有許可權導致的。
確保當前使用者對linux是/tmp windows是C:\Users***\AppData\Local\Temp 有讀寫許可權。
- E/ddms: transfer error: couldn’t create file: Permission denied
這個一般出現第一次插上裝置出現這個問題。
執行adb root 即可。
- 執行adb devices的時候顯示 “no permissions”
需要執行命令lsusb後,獲取到對應的vendor和product,加到對應的rule裡面即可。參考文章
##/etc/udev/rules.d/51-android.rules
# Intel vendor ID for ADB
SUBSYSTEM=="usb", ATTRS{idVendor}=="8087", MODE="0666"
#intel vendor ID for SOC device
SUBSYSTEM=="usb", ATTRS{idVendor}=="8086", MODE="0666"
修改完了重啟adb服務即可
adb kill-server
adb devices