私のアプリケーション写真へのAndroidアプリケーションディレクトリパスはすべてのバージョンで互換性が必要です。私は多くを検索しましたが、私はまだすべてのデバイスと互換性のあるものは見つかりませんでした。今度はこのコードを持っていますが、まだNullPointerExcepctionをpicturesDir.exists()
にU55
とZTE
のデバイスで与えています。すべてのバージョンとデバイスで互換性のあるAndroidアプリケーションディレクトリを作成してください
File picturesDir;
String state = Environment.getExternalStorageState();
// Make sure it's available, if there is no SD card, create new directory objects to make
// directory on device.
if (!Environment.MEDIA_MOUNTED.equals(state)) {
picturesDir = new File(Environment.getDataDirectory() + "/data/" + getApplicationContext().getPackageName() + "/Pictures/");
} else if (Environment.getExternalStorageState() != null) {
picturesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
} else{
String externalStoragePath = Environment.getExternalStorageDirectory()
.getAbsolutePath();
picturesDir = new File(externalStoragePath + getApplicationContext().getPackageName() + "/Pictures/");
}
if (!picturesDir.exists()) {
picturesDir.mkdir();
}
我々は何をすべき?クラッシュを避けるためにnullであるかどうかを確認したくありません。私は写真を保存できる道が欲しい。ありがとう。
"まだNullPointerExcepctionを与えています" - 質問を編集し、この例外に関連する完全なJavaスタックトレースを投稿してください。私は、あなたのアルゴリズムは、あなたの難しさの原因であると信じています。そして、スタックトレースはあなたの症状を確認するのに役立ちます。 – CommonsWare
SDカードの状態を確認中に何らかのエラーを起こさなくても、いつでもSDカードが抽出されたりIOエラーが発生する可能性があります。とにかくIOエラーを捕まえなければなりません。すべてのコストでかなりコードを作成しようとしないでください、あなたはそれを行うことはできません。 – user1643723
CommonsWare!をちょうど編集しました! –