我有一个奇怪的问题,第一次启动应用程序,它运行良好,第二次崩溃,第三次作品,第四次崩溃等等.. 这里是logcat的:File.Listfile()强制关闭(空指针异常)
E/AndroidRuntime(18039): FATAL EXCEPTION: main
E/AndroidRuntime(18039): java.lang.RuntimeException: Unable to start activity Co
mponentInfo{omar.quran1/omar.quran1.Quran}: java.lang.NullPointerException
E/AndroidRuntime(18039): at android.app.ActivityThread.performLaunchActiv
ity(ActivityThread.java:1768)
E/AndroidRuntime(18039): at android.app.ActivityThread.handleLaunchActivi
ty(ActivityThread.java:1784)
E/AndroidRuntime(18039): at android.app.ActivityThread.access$1500(Activi
tyThread.java:123)
E/AndroidRuntime(18039): at android.app.ActivityThread$H.handleMessage(Ac
tivityThread.java:939)
E/AndroidRuntime(18039): at android.os.Handler.dispatchMessage(Handler.ja
va:99)
E/AndroidRuntime(18039): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(18039): at android.app.ActivityThread.main(ActivityThrea
d.java:3835)
E/AndroidRuntime(18039): at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime(18039): at java.lang.reflect.Method.invoke(Method.java:5
07)
E/AndroidRuntime(18039): at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:847)
E/AndroidRuntime(18039): at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:605)
E/AndroidRuntime(18039): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(18039): Caused by: java.lang.NullPointerException
E/AndroidRuntime(18039): at omar.quran1.Quran.getReaders(Quran.java:565)
E/AndroidRuntime(18039): at omar.quran1.Quran.onCreate(Quran.java:414)
E/AndroidRuntime(18039): at android.app.Instrumentation.callActivityOnCre
ate(Instrumentation.java:1047)
E/AndroidRuntime(18039): at android.app.ActivityThread.performLaunchActiv
ity(ActivityThread.java:1722)
E/AndroidRuntime(18039): ... 11 more
所以,当代码达到getReaders(),它崩溃,并正好在这条线
int lengthtmp=f.listFiles().length;
下面是函数:
public void getReaders()
{
File f = new File(SuraDatabase.Audio_PATH);
if(f!=null)
{
int lengthtmp=f.listFiles().length; //It crashes here - NullPointerException
if(lengthtmp==0||lengthtmp>10)
{
SoundFiles=false;
}
else
{
SoundFiles=true;
File[] readArrays=f.listFiles();
for(int i =0;i<lengthtmp;i++)
{
if(readArrays[i].isDirectory())
{
ReaderOptions.add(readArrays[i].getName());
}
}
}
}
}
谁能告诉我为什么那行返回空? 谢谢。
你是认真的吗? – 2011-06-08 08:03:09
@Swaranga Sarma:是的。 – Kris 2011-06-08 08:04:21