2012-09-27 3 views
-2

Je suis nouveau sur Android et j'ai un problème avec ma première application que j'ai étendue en utilisant le Hello World. Logcat est ajouté. Quelqu'un peut-il s'il vous plaît aider pourquoi l'application s'arrête?Exception fatale: Main

09-27 19:05:57.442: E/AndroidRuntime(528): FATAL EXCEPTION: main 
09-27 19:05:57.442: E/AndroidRuntime(528): java.lang.RuntimeException: Unable to start receiver com.livelihood.hello.world.ScanSMSReceiver: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 
09-27 19:05:57.442: E/AndroidRuntime(528): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2126) 
09-27 19:05:57.442: E/AndroidRuntime(528): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 
09-27 19:05:57.442: E/AndroidRuntime(528): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1197) 
09-27 19:05:57.442: E/AndroidRuntime(528): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-27 19:05:57.442: E/AndroidRuntime(528): at android.os.Looper.loop(Looper.java:137) 
09-27 19:05:57.442: E/AndroidRuntime(528): at android.app.ActivityThread.main(ActivityThread.java:4424) 
09-27 19:05:57.442: E/AndroidRuntime(528): at java.lang.reflect.Method.invokeNative(Native Method) 
09-27 19:05:57.442: E/AndroidRuntime(528): at java.lang.reflect.Method.invoke(Method.java:511) 
09-27 19:05:57.442: E/AndroidRuntime(528): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
09-27 19:05:57.442: E/AndroidRuntime(528): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
09-27 19:05:57.442: E/AndroidRuntime(528): at dalvik.system.NativeStart.main(Native Method) 
09-27 19:05:57.442: E/AndroidRuntime(528): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 
09-27 19:05:57.442: E/AndroidRuntime(528): at com.livelihood.hello.world.ScanSMSReceiver.onReceive(ScanSMSReceiver.java:40) 
09-27 19:05:57.442: E/AndroidRuntime(528): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2119) 
09-27 19:05:57.442: E/AndroidRuntime(528): ... 10 more 
+4

Dans ce cas, vous essayez d'obtenir des données du tableau dont la longueur est 0 –

+0

et ajoutez un peu de code ici, il sera utilisé pour trouver l'erreur .. –

+1

pouvez-vous poster votre code hello world code ligne 40 from ScanSMSReceiver. java –

Répondre

0

En ligne # 40 dans votre classe ScanSMSReceiver.java vous utilisez un objet Array que vous ne l'avez pas instancier correctement. Ensuite, l'erreur vous indique que vous essayez d'accéder à l'index 0 à partir d'un tableau contenant 0 objet. Si vous essayez d'accéder à un index qui est plus de 1 moins le nombre d'éléments (nombre d'éléments dans un tableau -1) alors votre programme lancera une

java.lang.ArrayIndexOutOfBoundsException 

et planter votre programme.

Passez par votre code et vérifiez où vous déclarez votre objet Array et instancier avec une taille spécifique

int[] myArray = new int[5]; 

(ou tout autre type de tableau que vous utilisez) Ensuite, lorsque vous essayez et l'accès index 0 il ne va plus planter.

+0

même si tout me semblait grec, mais je suis vraiment heureux de votre aide monsieur:) ... Je ' Fais comme tu as guidé et reviens vers toi si tu peux encore aider. Pouvez-vous s'il vous plaît regarder à travers les lignes 39 et 40 de ma classe ScanSMSReceived.java que je joins ici Account [] accounts = AccountManager.get (contexte) .getAccountsByType ("com.google"); final Chaîne primaryEmail = accounts [0] .name; – user1703625

+0

Il ressemble à AcountManager.get (contexte) .getAccountsByType ("com.google"); renvoie un tableau vide lorsque vous essayez de faire des comptes [0] .name; il se bloque parce qu'il n'y a aucun élément dedans. J'aurais besoin de vous pour poster la méthode ou la classe que vous appelez ceci pour vous aider davantage. Editez votre question ci-dessus et copiez-collez-le code – zabawaba99

+0

public class ScanSMSReceiver extends BroadcastReceiver { Remplacer public void onReceive (contexte de contexte, intention d'intention) {Account [] accounts = AccountManager.get (contexte) .getAccountsByType ("com.google") final Chaîne primaryEmail = accounts [0] .name; – user1703625

Questions connexes