2

アプリをテストしようとしていますが、エミュレーターがうまくいきません。いくつかの異なる AVD と BlueStacks を試しました。仮想 SDCard のマウント方法が原因で、アプリが期待どおりにキャッシュ ディレクトリを見つけられません。ただし、2 つの異なる 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

考えられるバグの 1 つ:

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

テキストは「==」として比較できません。

次のように試してください:

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

エミュレータで動作しないのは、エミュレータで SD カードがサポートされていないことが原因である可能性があります。

Eclipse でメニューウィンドウに移動 – Android SDK と Avg Manager仮想デバイスを 選択SD カードをインストールする必要があるAVD 名を 選択編集ボタンをクリック 開いたダイアログでSD カードに移動 – サイズ: 500 と書き込み ボタンを押してAVD を編集 AVD エミュレーターを実行

それが役に立てば幸い!!

于 2013-08-16T04:30:37.453 に答える