2

我正在尝试测试我的应用程序,但对任何模拟器都没有运气。我尝试了一些不同的 AVD 和 BlueStacks。由于他们挂载虚拟 SDCard 的方式,我的应用程序没有按预期找到缓存目录。但是,当我在两部不同的 Android 手机上运行相同的应用程序时,它似乎可以正常工作。面对这个问题,我认为必须有更好的方法来引用我正在寻找的文件夹。

我在我的 onCreate 中使用它:

    // Check if application exists
    for (int i = 0; i < list.size(); i++) {
        if (list.get(i).packageName.equals("com.someapphere")) {
            v.setText("Application Found");
            break;
        } else {
            v.setText("Application Not Found");
        }
    }

    if (v.getText() == "Application Found") {
        // Check for Cache Usage
        final File dataStore = Environment.getExternalStorageDirectory();
        try {
            File tCache = new File(dataStore.getAbsolutePath()
                 + "/Android/data/com.someapphere/cache");
            long tCacheSize = folderSize(tCache);

            if (tCacheSize == 0) {
                 v2.setText(" Nothing to do");
            } else {
              // Start Async task - delete files
              ...
            }
        } catch(Exception e) {
              v2.setText(" Cache not found");
        }
    }

我去掉了我在这里做的其他一些不相关的东西,但其余的应该复制这个问题。如果还不是很明显,那么我对编程还是很陌生。

4

3 回答 3

0

一个可能的错误:

v.getText() == "Application Found" // try .equals instead
于 2013-08-16T04:12:43.603 回答
0

无法将文本与“==”进行比较。

你应该这样尝试:

v.getText().toString().equalsIgnoreCase("Application Found");

它在模拟器中不起作用可能是因为您在模拟器中没有 SD 卡支持。

在 Eclipse 中进入菜单Window – Android SDK and Avg Manager 选择虚拟设备 选择您需要安装 SD 卡的AVD 名称单击编辑按钮 在打开的对话框中转到SD 卡 – 大小:并写入 500 按下按钮Edit AVD 运行 AVD 模拟器

希望能帮助到你!!

于 2013-08-16T04:30:37.453 回答
0

尝试替换此代码:

File tCache = new File(dataStore.getAbsolutePath() + "/Android/data/com.someapphere/cache");

使用此代码:

File cache_Folder = new File(dataStore + "/Android/data/com.someapphere/cache");
if (!cache_Folder.exists())
    cache_Folder.mkdirs();

File tCache = new File(dataStore + "/Android/data/com.someapphere/cache");
于 2013-08-16T05:05:46.567 回答