0
java.lang.RuntimeException: Unable to resume activity {com.myactivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://media/external/video/media/20101 typ=video/mp4 (has extras) }} to activity {com.myactivity}: java.lang.NullPointerException

これは、ビデオを選択した後に表示されるエラー メッセージです。このアプリの流れは....ファイルのアップロード ボタンをクリックすると、ダイアログが表示され、参照ボタン、アップロード ボタン、およびいくつかの必須フィールド (名前、説明、タグなど) が表示されます。参照ボタンをクリックすると、ファイル選択ウィンドウが表示されます。参照ボタンのテキストはファイル名に置き換えられます。これで問題なく動作することもありますが、エラーが発生することもあります。

私はいくつかの調査を行いました.pplは、これはメモリ不足が原因であると言いましたがbtnBrowse.setText(filename)、ファイルチューザーから戻った後、ダイアログの準備が整う前に私がやろうとしたためだと言う人もいました. ダイアログを編集する準備ができているかどうかをリッスンするリスナーを作成する方法はありますか? みたいなif(dialog.isShowing())方法。しかし、私はこのチェックをどこに置くべきかわかりません...

誰か助けてください?? (誰かがメモリ不足の解決策を持っている場合は、アドバイスもお願いします。)ありがとう!!

btnBrowse = (Button) dialVideoUpload.findViewById(R.id.btnBrowseVideo);
btnUpload = (Button) dialVideoUpload.findViewById(R.id.btnUpload);
btnBrowse.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        createVideoIntent();
        }           
    });
private void createVideoIntent(){
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("video/*");

    Intent chooser = createVideoChooserIntent(createVideoFromCameraIntent());
    chooser.putExtra(Intent.EXTRA_INTENT, intent);
    startActivityForResult(chooser, FILECHOOSER_REQUESTCODE_VIDEO); 
}
private Intent createVideoChooserIntent(Intent... intents) {
    Intent chooser = new Intent(Intent.ACTION_CHOOSER);
    chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intents);
    chooser.putExtra(Intent.EXTRA_TITLE, "Please Choose Your Video");
    return chooser;
}
private Intent createVideoFromCameraIntent() {
    return new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {

    switch (requestCode) {

    case FILECHOOSER_REQUESTCODE_VIDEO:

if (resultCode == Activity.RESULT_OK) {
    String[] projection = { MediaStore.Images.Media.DATA, MediaStore.Video.Media.SIZE, MediaStore.Video.Media.DURATION, MediaStore.Video.Media.TITLE };

    Cursor cursor = managedQuery(intent.getData(), projection, null, null, null);
    cursor.moveToFirst();
    String filePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
    String fileName = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));
    int fileSize = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE));
    long duration = TimeUnit.MILLISECONDS.toSeconds(cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION)));

    System.out.println("path: " + filePath);
    System.out.println("name: " + fileName);
    System.out.println("size: " + fileSize);
    System.out.println("duration: " + duration);

        //  btnBrowse.setText(fileName); <---this is where I got error

        }
        break;
    }
}

以下はエラーメッセージです。

06-12 10:09:46.445: E/AndroidRuntime(31965): FATAL EXCEPTION: main
06-12 10:09:46.445: E/AndroidRuntime(31965): java.lang.RuntimeException: Unable to resume activity {com.myactivity/com.myactivity.Webviewer}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://media/external/video/media/20101 typ=video/mp4 (has extras) }} to activity {com. myactivity /com. myactivity.Webviewer}: java.lang.NullPointerException
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2812)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2851)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2234)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread.access$600(ActivityThread.java:139)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1261)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.os.Looper.loop(Looper.java:154)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread.main(ActivityThread.java:4945)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at java.lang.reflect.Method.invokeNative(Native Method)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at java.lang.reflect.Method.invoke(Method.java:511)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at dalvik.system.NativeStart.main(Native Method)
06-12 10:09:46.445: E/AndroidRuntime(31965): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://media/external/video/media/20101 typ=video/mp4 (has extras) }} to activity {com. myactivity /com. myactivity.Webviewer}: java.lang.NullPointerException
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3387)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2793)
06-12 10:09:46.445: E/AndroidRuntime(31965):    ... 12 more
06-12 10:09:46.445: E/AndroidRuntime(31965): Caused by: java.lang.NullPointerException
06-12 10:09:46.445: E/AndroidRuntime(31965):    at com. myactivity.Webviewer.onActivityResult(Webviewer.java:853)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.Activity.dispatchActivityResult(Activity.java:4740)
06-12 10:09:46.445: E/AndroidRuntime(31965):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3383)
06-12 10:09:46.445: E/AndroidRuntime(31965):    ... 13 more
4

1 に答える 1

0

問題が解決しました。ここでダニタからのアドバイスを受けて、うまくいきました!!

于 2013-06-12T19:59:40.093 に答える