2012-12-14 4 views
0

안녕하세요 현재 안드로이드 시장에 내 애플 리케이션의 일부에 오류가 점점 오전 :OnListItemClick NullPointerException이

java.lang.NullPointerException 
    at ****.****.MainActivity.onListItemClick(MainActivity.java:110) 
    at android.app.ListActivity$2.onItemClick(ListActivity.java:319) 
    at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
    at android.widget.ListView.performItemClick(ListView.java:3513) 
    at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812) 
    at android.os.Handler.handleCallback(Handler.java:587) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:130) 
    at android.app.ActivityThread.main(ActivityThread.java:3683) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:870) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628) 
    at dalvik.system.NativeStart.main(Native Method) 

코드 부분이 잘못 :

@Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 
     mMediaPlayer.stop(); 
     Sound s = (Sound) l.getItemAtPosition(position); 
     mMediaPlayer = MediaPlayer.create(this, s.getSoundResourceId()); 
     mMediaPlayer.start(); 
    } 

이 스택 트레이스입니다

주로 (사운드 재생) 작동하지만 가끔 nullpointerexception을 제공하고 왜 MediaPlayer 또는 super.onListItemClick()을 사용하여 무언가를 알 수 없습니까?

미리 감사드립니다.

+1

어떤 라인이 110입니까? – Pablo

+0

mMediaPlayer.start(); – David

답변

1

아마 s는 null입니까? 재현/디버깅 할 수 있습니까?

목록 어댑터 구현의 getItemAtPosition (position) 코드를 제공 할 수 있습니까? 랩핑 할 수 있습니다

if (s != null) { 
     mMediaPlayer = MediaPlayer.create(this, s.getSoundResourceId()); 
     mMediaPlayer.start(); 
    } 

편집. 흠, 나는 틀린 선에 서 있었다.

반환

a MediaPlayer object, or null if creation failed 

를 그리고 생성 실패 이유를 알아보십시오 : 당신이 문서를 읽으면 때문에 당신은 NULL 체크와 미디어 플레이어를 시작하고 마무리한다.