2013-07-26 3 views
0

У меня есть NPE, когда я выполняю строку FileInputStream ifs=openFileInput(fileName); Я получаю NPE. Я получаю тот же NPE, когда я исполняюИсключение NullPointer и FileInputStream

FileInputStream ifs=getApplicationContext().openFileInput(fileName);

Полный StackTrace здесь.

07-25 22:00:35.852 25063-25063/? E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.NullPointerException 
at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109) 
at com.ollien.flashcarder.MainActivity.setPagerFile(MainActivity.java:353) 
at com.ollien.flashcarder.SetsFragment$1.onItemClick(SetsFragment.java:47) 
at android.widget.AdapterView.performItemClick(AdapterView.java:298) 
at android.widget.AbsListView.performItemClick(AbsListView.java:1215) 
at android.widget.ListView.performItemClick(ListView.java:4506) 
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2959) 
at android.widget.AbsListView$1.run(AbsListView.java:3645) 
at android.os.Handler.handleCallback(Handler.java:725) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:158) 
at android.app.ActivityThread.main(ActivityThread.java:5751) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850) 
at dalvik.system.NativeStart.main(Native Method) 

Помогло ли кто-нибудь? Я не совсем понимаю, почему это происходит. fileName не равно null и равно "hi there.txt" Спасибо!

+0

Вы можете проверить, не возвращает ли getApplicationContext() значение null? Просто с журналом. Если вы уверены, что имя файла не равно – Nicholas

+0

Вы когда-нибудь вызываете 'attachBaseContext()' в 'onItemClick' или' SetPagerFile'? Я спрашиваю, потому что оба 'getApplicationContext()' и 'openFileInput()' имеют вызов mBaseContext.SOMETHING, поэтому, если вы устанавливаете значение null, это объясняет NPE. – Jonathan

+0

@Nicholas getApplicationContext(); бросает NPE, когда я пытаюсь System.out его – ollien

ответ

1

Решение: Убедитесь, что контекст не пуст, я передал его в с помощью аргументов функции, например public void setPagerFile(String fileName,Context mContext){ затем использовать mContext в качестве контекста.

Смежные вопросы