0

ファイルをストレージに保存しようとすると、Samsung Galaxy S3では正常に動作しますが、HTCOneSではクラッシュします。HTCOneSのデバイスに外部ストレージが指定されていないのではないかと思います。だから問題は、どうすればこれを回避できますか?

OneSでクラッシュする3つの関数は次のとおりです。

public void takePicture(View view){
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    fileUri = getMediaFileUri(MEDIA_TYPE_IMAGE, "SL_IMG_");
    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

    startActivityForResult(intent, IMAGE_REQUEST_CODE);
}

private Uri getMediaFileUri(int type, String lift){
    return Uri.fromFile(getMediaFile(type, lift));
}

private File getMediaFile(int type, String lift){
    File dir;
    if (type == MEDIA_TYPE_IMAGE) {
        dir = new     File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "StrongLifts"); //set destination folder
    } else {
        dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES), "StrongLifts/" + lift); //set destination folder
    }
    if (!dir.exists()){ // if dir does not exist
        if (!dir.mkdirs()) {    // create dir
            // something went horribly wrong
            return null;
        }
    }

そしてlogcatメッセージ:

nullPointerException: file
at android.net.Uri.fromFile(Uri.java:441)
at no.whg.getfit.LogWorkout.getMediaFileUri(LogWorkout.java:202)
at no.whg.getfit.LogWorkout.takePicture... etc

助けていただければ幸いです、ありがとう。

4

1 に答える 1

1

今はかなり馬鹿げています。私は問題が何であるかを理解しました、電話がUSBを通して差し込まれるとき、それは電話にsdcardをマウントするので、電話は自動的にクラッシュします。しかし、私がそれを差し込んだとき、すべてがうまくいきました、不便をおかけして申し訳ありませんが、うまくいけば、他の誰かが将来同じ問題を抱えることになるでしょう:)

于 2012-10-06T00:56:53.500 に答える