2013-09-16 4 views
0

nullpointexeption이있어서 응용 프로그램을 일시 중지 할 수 없습니다. (아마도 SherlockActionBar 조각에서 작업한다는 사실을 기억하는 것이 중요합니다.)활동을 일시 중지 할 수 없습니다. nullpointexeption

// SEND THE FILE 
String sharePath = Environment.getExternalStorageDirectory().getPath() 
      + "/Soundboard/Ringtones/custom_ringtone.ogg"; 
Uri uri = Uri.parse(sharePath); 
Intent share = new Intent(Intent.ACTION_SEND); 
share.setType("audio/*"); 
share.putExtra(Intent.EXTRA_STREAM, uri); 
startActivity(Intent.createChooser(share, "Share Sound File")); 

을 그리고 여기 내 로그입니다 :

나는 그 때문에이 코드 줄의 생각을 미리

09-16 19:33:57.030: E/AndroidRuntime(32080): FATAL EXCEPTION: main 
09-16 19:33:57.030: E/AndroidRuntime(32080): java.lang.RuntimeException: Unable to pause activity {com.mega.sb/com.mega.sb.MainActivity}: java.lang.NullPointerException 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2879) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2835) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2813) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.ActivityThread.access$800(ActivityThread.java:140) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.os.Looper.loop(Looper.java:137) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.ActivityThread.main(ActivityThread.java:4898) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at java.lang.reflect.Method.invokeNative(Native Method) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at java.lang.reflect.Method.invoke(Method.java:511) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at dalvik.system.NativeStart.main(Native Method) 
09-16 19:33:57.030: E/AndroidRuntime(32080): Caused by: java.lang.NullPointerException 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at com.actionbarsherlock.app.SherlockFragmentActivity.onSaveInstanceState(SherlockFragmentActivity.java:126) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.Activity.performSaveInstanceState(Activity.java:1181) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1219) 
09-16 19:33:57.030: E/AndroidRuntime(32080): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2861) 
09-16 19:33:57.030: E/AndroidRuntime(32080): ... 12 more 

감사합니다!

답변

1

어떤 변수가 null인지 아닌지 당신이보고 로그인 할 수 있습니다 파일 경로를 확인하고 내 애플 더 이상 충돌하지 않습니다 getAbsolutePath() 대신

String sharePath = Environment.getExternalStorageDirectory().getAbsolutePath() 
      + "/Soundboard/Ringtones/custom_ringtone.ogg"; 
File f = new File(sharePath); 
if(f!=null && f.exists()) { 
Uri uri = Uri.parse(sharePath); 
.... 

} 
+0

getPath()의 사용합니다. 그러나 그것은 또한 파일을 벨소리로 설정하지 않습니다. 그 외에도 홈 버튼을 누르면 앱이 다운됩니다. 그러나이 코드 라인을 추가하기 전까지는 – Wannabe

+0

가'onSaveInstanceState' 메소드를 오버라이드하고 있습니까? – Sunny

+0

그리고 코드가 파일을 벨소리로 설정하지 않으면 파일 경로를 확인하십시오. 파일은 지정된 경로에 있어야합니다. – Sunny

관련 문제