android - Android 应用程序在启动时崩溃 (Kotlin)
问题描述
我是 Kotlin 的新手,我尝试为 Android 开发一个(非常)小测验,但是当我启动应用程序时,它崩溃了。我已经检查过了,但我没有看到任何错误。
这是我的代码的摘录。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Toast.makeText(applicationContext, "Welcome on Quizzer !.", Toast.LENGTH_SHORT).show()
setLevel()
checkAnswer()
}
这是我的完整代码:https ://pastebin.com/U6xtnC5c
日志猫:
2020-04-12 17:15:10.783 10645-10645/com.madijason.quizzer E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.madijason.quizzer, PID: 10645
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.madijason.quizzer/com.madijason.quizzer.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
at com.madijason.quizzer.MainActivity.setLevel(MainActivity.kt:53)
at com.madijason.quizzer.MainActivity.onCreate(MainActivity.kt:29)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
解决方案
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
你得到ArrayIndexOutOfBoundsException
. 您应该从 0 开始设置索引。
ArrayIndexOutOfBoundsException
抛出表明我们正在尝试使用非法索引访问数组元素。
first_answer.text = thirdQuestionAnswer[0]
second_answer.text = thirdQuestionAnswer[1]
third_answer.text = thirdQuestionAnswer[2]
fourth_answer.text = thirdQuestionAnswer[3]
推荐阅读
- c++ - QT,C++:禁用文件重命名/移动/删除
- macos - 用于在 macOS 上右键单击创建新文件的 Shell 脚本
- android - 使用 Bundle 将 textview 从一个片段更新到另一个片段不起作用
- r - R中变量讲座的问题,带小数
- scala - Scala-Cats:组合具有应用效果的单子
- java - 如何设置 GIF 图像全屏 Android
- python - XML 从 URL 检索到 CSV
- java - Spring Batch 如何根据标题名称解析动态列?
- node.js - 如何使用ejs中的按钮通过_id查找和更新记录(MongoDB)?
- java - Hibernate search elasticsearch schema management NONE仍然连接到elasticsearch?