Не удалось приостановить действие nullpointexeption

124
9

У меня есть nullpointexeption, что делает мое приложение неспособным приостановить. (Возможно, важно отметить, что я работаю над фрагментами SherlockActionBar).

Я думаю, что из-за этой строки кода:

// 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

Заранее спасибо!

спросил(а) 2021-01-25T16:57:24+03:00 4 месяца, 2 недели назад
1
Решение
63

Проверьте свой путь к файлу, в который вы можете войти, чтобы узнать, является ли какая-либо переменная нулевой или нет, и используйте getAbsolutePath() вместо getPath()

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);
....

}

ответил(а) 2021-01-25T16:57:24+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема