-2

我是 android 新手,在使用 Hello World 扩展的第一个应用程序时遇到问题。附加了 Logcat。任何人都可以请帮助为什么应用程序关闭?

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

1 回答 1

0

在 ScanSMSReceiver.java 类中的第 40 行中,您使用了一个未正确实例化的 Array 对象。

然后错误告诉您您正在尝试从其中包含 0 个对象的数组中访问索引 0。如果您尝试访问的索引比项目数少 1(数组中的项目数 -1),那么您的程序将抛出

java.lang.ArrayIndexOutOfBoundsException

并使您的程序崩溃。

浏览您的代码并检查您声明 Array 对象的位置并使用特定大小对其进行实例化

int[] myArray = new int[5];

(或您使用的任何类型的数组)然后,当您尝试访问索引 0 时,它将不再崩溃。

于 2012-09-27T14:39:14.593 回答