2012-03-06 16 views
1

私は次のエラーが発生しました:捕捉されない例外(グループ= 0x4001b188)でスレッドが終了しました。 Nullpointerexception これは、次のコードによって引き起こされます。 package org.apache.android.media;未知の例外(グループ= 0x4001b188)でスレッドが終了します。 Nullpointerexception

import android.app.Activity; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnBufferingUpdateListener; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.media.MediaPlayer.OnPreparedListener; 
import android.media.MediaPlayer.OnVideoSizeChangedListener; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.SurfaceHolder; 
import android.view.SurfaceView; 
import android.widget.Toast; 


public class VideoViewDemo extends Activity implements 
    OnBufferingUpdateListener, OnCompletionListener, 
    OnPreparedListener, OnVideoSizeChangedListener, SurfaceHolder.Callback { 

private static final String TAG = "MediaPlayerDemo"; 
private int mVideoWidth; 
private int mVideoHeight; 
private MediaPlayer mMediaPlayer; 
private SurfaceView mPreview; 
private SurfaceHolder holder; 
private String path; 
private Bundle extras; 
private static final String MEDIA = "media"; 
private static final int LOCAL_AUDIO = 1; 
private static final int STREAM_AUDIO = 2; 
private static final int RESOURCES_AUDIO = 3; 
private static final int LOCAL_VIDEO = 4; 
private static final int STREAM_VIDEO = 5; 
private boolean mIsVideoSizeKnown = false; 
private boolean mIsVideoReadyToBePlayed = false; 

/** 
* 
* Called when the activity is first created. 
*/ 
@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.main); 
    mPreview = (SurfaceView) findViewById(R.id.surface); 
    holder = mPreview.getHolder(); 
    holder.addCallback(this); 
    holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
    extras = getIntent().getExtras(); 

} 

private void playVideo(Integer Media) { 
    doCleanUp(); 
    try { 
     path = "http://pwserver/barbapappa.mp4"; 

     // Create a new media player and set the listeners 
     mMediaPlayer = new MediaPlayer(); 
     mMediaPlayer.setDataSource(path); 
     mMediaPlayer.setDisplay(holder); 
     mMediaPlayer.prepare(); 
     mMediaPlayer.setOnBufferingUpdateListener(this); 
     mMediaPlayer.setOnCompletionListener(this); 
     mMediaPlayer.setOnPreparedListener(this); 
     mMediaPlayer.setOnVideoSizeChangedListener(this); 
     mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    } catch (Exception e) { 
     Log.e(TAG, "PdM error: " + e.getMessage(), e); 
    } 
} 

public void onBufferingUpdate(MediaPlayer arg0, int percent) { 
    Log.d(TAG, "onBufferingUpdate percent:" + percent); 

} 

public void onCompletion(MediaPlayer arg0) { 
    Log.d(TAG, "onCompletion called"); 
} 

public void onVideoSizeChanged(MediaPlayer mp, int width, int height) { 
    Log.v(TAG, "onVideoSizeChanged called"); 
    if (width == 0 || height == 0) { 
     Log.e(TAG, "invalid video width(" + width + ") or height(" + height + ")"); 
     return; 
    } 
    mIsVideoSizeKnown = true; 
    mVideoWidth = width; 
    mVideoHeight = height; 
    if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) { 
     startVideoPlayback(); 
    } 
} 

public void onPrepared(MediaPlayer mediaplayer) { 
    Log.d(TAG, "onPrepared called"); 
    mIsVideoReadyToBePlayed = true; 
    if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) { 
     startVideoPlayback(); 
    } 
} 

public void surfaceChanged(SurfaceHolder surfaceholder, int i, int j, int k) { 
    Log.d(TAG, "surfaceChanged called"); 

} 

public void surfaceDestroyed(SurfaceHolder surfaceholder) { 
    Log.d(TAG, "surfaceDestroyed called"); 
} 


public void surfaceCreated(SurfaceHolder holder) { 
    Log.d(TAG, "surfaceCreated called"); 
    playVideo(extras.getInt(MEDIA)); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    releaseMediaPlayer(); 
    doCleanUp(); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    releaseMediaPlayer(); 
    doCleanUp(); 
} 

private void releaseMediaPlayer() { 
    if (mMediaPlayer != null) { 
     mMediaPlayer.release(); 
     mMediaPlayer = null; 
    } 
} 

private void doCleanUp() { 
    mVideoWidth = 0; 
    mVideoHeight = 0; 
    mIsVideoReadyToBePlayed = false; 
    mIsVideoSizeKnown = false; 
} 

private void startVideoPlayback() { 
    Log.v(TAG, "startVideoPlayback"); 
    holder.setFixedSize(mVideoWidth, mVideoHeight); 
    mMediaPlayer.start(); 

}

誰かがそれをチェックアウトし、うまくいけば、私が間違っていた場所を教えてもらえます。私は数時間デバッグしましたが、結果はありません。すべての助けに感謝!

Dr.Dredel @

:私は何をするかわからないその手助けのためにこれによって

logcat-内容と感謝:私は同じに直面してきました

D/AndroidRuntime(496): Shutting down VM 
W/dalvikvm(496): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
E/AndroidRuntime(496): Uncaught handler: thread main exiting due to uncaught exception 
E/AndroidRuntime(496): java.lang.NullPointerException 
E/AndroidRuntime(496):  at org.apache.android.media.VideoViewDemo.surfaceCreated(VideoViewDemo.java:133) 
E/AndroidRuntime(496):  at android.view.SurfaceView.updateWindow(SurfaceView.java:454) 
E/AndroidRuntime(496):  at android.view.SurfaceView.dispatchDraw(SurfaceView.java:287) 
E/AndroidRuntime(496):  at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(496):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(496):  at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(496):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(496):  at android.view.View.draw(View.java:6538) 
E/AndroidRuntime(496):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
E/AndroidRuntime(496):  at android.view.ViewGroup.drawChild(ViewGroup.java:1531) 
E/AndroidRuntime(496):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(496):  at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(496):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(496):  at android.view.View.draw(View.java:6538) 
E/AndroidRuntime(496):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
E/AndroidRuntime(496):  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1830) 
E/AndroidRuntime(496):  at android.view.ViewRoot.draw(ViewRoot.java:1349) 
E/AndroidRuntime(496):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1114) 
E/AndroidRuntime(496):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1633) 
E/AndroidRuntime(496):  at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(496):  at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(496):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
E/AndroidRuntime(496):  at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(496):  at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(496):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime(496):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
E/AndroidRuntime(496):  at dalvik.system.NativeStart.main(Native Method) 
I/dalvikvm(496): threadid=7: reacting to signal 3 
E/dalvikvm(496): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 
D/MediaPlayerDemo(521): surfaceCreated called 
D/AndroidRuntime(521): Shutting down VM 
W/dalvikvm(521): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
E/AndroidRuntime(521): Uncaught handler: thread main exiting due to uncaught exception 
E/AndroidRuntime(521): java.lang.NullPointerException 
E/AndroidRuntime(521):  at org.apache.android.media.VideoViewDemo.surfaceCreated(VideoViewDemo.java:134) 
E/AndroidRuntime(521):  at android.view.SurfaceView.updateWindow(SurfaceView.java:454) 
E/AndroidRuntime(521):  at android.view.SurfaceView.dispatchDraw(SurfaceView.java:287) 
E/AndroidRuntime(521):  at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(521):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(521):  at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(521):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(521):  at android.view.View.draw(View.java:6538) 
E/AndroidRuntime(521):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
E/AndroidRuntime(521):  at android.view.ViewGroup.drawChild(ViewGroup.java:1531) 
E/AndroidRuntime(521):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(521):  at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(521):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(521):  at android.view.View.draw(View.java:6538) 
E/AndroidRuntime(521):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
E/AndroidRuntime(521):  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1830) 
E/AndroidRuntime(521):  at android.view.ViewRoot.draw(ViewRoot.java:1349) 
E/AndroidRuntime(521):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1114) 
E/AndroidRuntime(521):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1633) 
E/AndroidRuntime(521):  at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(521):  at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(521):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
E/AndroidRuntime(521):  at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(521):  at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(521):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime(521): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
E/AndroidRuntime(521): at dalvik.system.NativeStart.main(Native Method) 
I/dalvikvm(521): threadid=7: reacting to signal 3 
E/dalvikvm(521): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 
I/Process(521): Sending signal. PID: 521 SIG: 9 
D/MediaPlayerDemo(547): surfaceCreated called 
D/AndroidRuntime(547): Shutting down VM 
W/dalvikvm(547): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
E/AndroidRuntime(547): Uncaught handler: thread main exiting due to uncaught exception 
E/AndroidRuntime(547): java.lang.NullPointerException 
E/AndroidRuntime(547): at org.apache.android.media.VideoViewDemo.surfaceCreated(VideoViewDemo.java:134) 
E/AndroidRuntime(547): at android.view.SurfaceView.updateWindow(SurfaceView.java:454) 
E/AndroidRuntime(547): at android.view.SurfaceView.dispatchDraw(SurfaceView.java:287) 
E/AndroidRuntime(547): at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(547): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(547): at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(547): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(547): at android.view.View.draw(View.java:6538) 
E/AndroidRuntime(547): at android.widget.FrameLayout.draw(FrameLayout.java:352) 
E/AndroidRuntime(547): at android.view.ViewGroup.drawChild(ViewGroup.java:1531) 
E/AndroidRuntime(547): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(547): at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 
E/AndroidRuntime(547): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 
E/AndroidRuntime(547): at android.view.View.draw(View.java:6538) 
E/AndroidRuntime(547): at android.widget.FrameLayout.draw(FrameLayout.java:352) 
E/AndroidRuntime(547): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1830) 
E/AndroidRuntime(547): at android.view.ViewRoot.draw(ViewRoot.java:1349) 
E/AndroidRuntime(547): at android.view.ViewRoot.performTraversals(ViewRoot.java:1114) 
E/AndroidRuntime(547): at android.view.ViewRoot.handleMessage(ViewRoot.java:1633) 
E/AndroidRuntime(547): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(547): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(547): at android.app.ActivityThread.main(ActivityThread.java:4363) 
E/AndroidRuntime(547): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(547): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(547): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime(547): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
E/AndroidRuntime(547): at dalvik.system.NativeStart.main(Native Method) 
I/dalvikvm(547): threadid=7: reacting to signal 3 
E/dalvikvm(547): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 
I/Process(547): Sending signal. PID: 547 SIG: 9 
+1

を支援どこが実際に失敗するのですか? –

+0

エラーの回りにlogcat全体の内容をコピーできますか? – Soham

+0

あなたのバンドルのエキストラがnull –

答えて

0

今日の問題。

私がする必要があったのは、playVideoメソッドのパラメータを削除し、 "extras.getInt()"を削除してsurfaceCreatedメソッドを更新することでした。私はビデオを再生することができますが、私はまだエキストラをするために使用されているかわからないこれにより

...

希望、これはデバッガをアタッチし、ちょうど見にコードをステップないのはなぜ

関連する問題