1. 程式人生 > >Android VTS 常見問題及解決辦法

Android VTS 常見問題及解決辦法


基於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); } }

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

參考文件