20

私はしばらくアプリに取り組んでおり、多くのデバイスでテストしてきました。突然、Motorola Xoom Family Edition (Honeycomb 3.1) で動作しなくなりました。アプリを実行しようとするたびに、getExternalFilesDir() の呼び出しで失敗します。その呼び出しはファイルではなく null を返すためです。

私の調査によると、同様の問題を抱えている人は、WRITE_EXTERNAL_STORAGE が見つからないか、答えが得られないか、Froyo のバグについて話しているかのいずれかです。ここではどれも当てはまりません。また、他のデバイスでも問題なく動作します。WRITE_EXTERNAL_STORAGE 権限があり、数分前までこのデバイスでも動作していました。

この問題の原因、またはプログラムで防止する方法はありますか?

4

3 に答える 3

22

タブレットを再起動すると、問題はなくなりました。非常にまれで、単純な再起動で修正される奇妙な癖かもしれません。バグに遭遇したユーザーが理解してくれることを期待するのではなく、これを防ぐための確実な方法が欲しいので、そうでないことを願っています.

于 2012-04-11T22:20:50.690 に答える
7

2.3.6 (カーネル 2.6.35.7-FF1) を実行している Samsung SCH-1405 (VZW Galaxy II) でも同じ問題が発生します。何ヶ月もの間、外部ファイルのディレクトリを取得しても問題はありませんでした。NULL が返され始めました。電話を再起動すると、問題はなくなりました。吉兆ではない。

考えられる原因としては、スクリーン ショットを取得するためにこの電話を USB デバッグ モードに切り替えたり、USB デバッグ モードを解除したり、最初に電話のファイル システムを Mac からアンマウントせずに電話から USB ケーブルを引き抜いたりしたことが考えられます。これは私の側の新しい動作です。

問題が存在する android.os.Environment.getExternalStorageState() からの戻り結果を見ると、「共有」と表示されますが、電話を再起動すると結果は「マウント」されます。したがって、携帯電話が外部ストレージが「共有」されていると判断した場合、アプリが外部ストレージにアクセスすることを許可していないようです。これは憶測です。

于 2012-11-02T12:48:37.737 に答える