无法使用ADB Espresso清除应用数据

时间:2018-11-16 10:24:24

标签: android automation android-espresso

我无法使用以下方法清除App Data,我正在使用植根设备API 19。

public static void clearAppData() {

        try {
            Process su = Runtime.getRuntime().exec("su");
            DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());

            outputStream.writeBytes(pm clear com.xxx.xxx.xxx);
            outputStream.flush();

            outputStream.writeBytes("exit\n");
            outputStream.flush();
            su.wait(2000);
        } catch (Exception e) {
            Log.e("Set Time", e.getMessage());
        }
    }

我正在测试中调用上述方法,但无法清除Cache。我已经做了同样的事情来更改设备时间,并且有效

在以下测试中调用上述方法:

@Test
    public void a_test() {


        CommonUtil.clearAppData();

        CommonUtil.changetime();

        CommonUtil.pausetime(5000);

}

1 个答案:

答案 0 :(得分:1)

这与以下解决方案一起使用,跳过了adb命令并创建了以下方法

public static void clearSharedPrefs(Context context) {
        SharedPreferences sharedPreferences = context.
                getSharedPreferences(KEY_SP_PACKAGE, Context.MODE_PRIVATE);
//  sharedPreferences.edit().remove("KEY").commit(); //Remove Key
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.clear();
        editor.commit();
    }