J'ai un problème étrange où, la première fois que vous démarrez l'application, cela fonctionne bien, la deuxième fois il se bloque, le 3ème fonctionne, le quatrième plante et ainsi de suite .. Voici le logcat:File.Listfile() force ferme (NullPointerException)
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
Ainsi, lorsque le code atteint getReaders(), il se bloque, et exactement sur cette ligne
int lengthtmp=f.listFiles().length;
Voici la fonction:
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());
}
}
}
}
}
Quelqu'un peut-il me dire pourquoi cette ligne retourne Null? Merci.
Êtes-vous sérieux? –
@Swaranga Sarma: oui. – Kris