我的图像背景颜色出现致命错误

Fatal exression error with my image background color

我正在学习一个旧的 Kotlin 课程,由于他们的课程很旧,我认为他们不再回复问答了。

我的问题是该应用程序完全可以正常工作,但是一旦我实现了那个背景颜色方法,它就停止了。

这是我得到的致命错误:

2019-11-21 11:46:14.035 31147-31147/com.example.smack E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.smack, PID: 31147
    java.util.InputMismatchException
        at java.util.Scanner.throwFor(Scanner.java:876)
        at java.util.Scanner.next(Scanner.java:1502)
        at java.util.Scanner.nextDouble(Scanner.java:2431)
        at com.example.smack.Services.UserDataService.returnAvatarColor(UserDataService.kt:35)
        at com.example.smack.Controller.MainActivity$userDataChangeReciever.onReceive(MainActivity.kt:72)
        at androidx.localbroadcastmanager.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
        at androidx.localbroadcastmanager.content.LocalBroadcastManager.handleMessage(LocalBroadcastManager.java:121)
        at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

主要关注 UserDataService.kt:35),这是我将颜色从 double 转换为 Int 的地方:

fun returnAvatarColor(components: String) : Int {
    val strippedColor = components.replace("[", "").replace("]", "").replace(",", "")

    var r = 0
    var g = 0
    var b = 0

    val scanner = Scanner(strippedColor)
    if (scanner.hasNext()) {
        r = (scanner.nextDouble() * 255).toInt()
        g = (scanner.nextDouble() * 255).toInt()
        b = (scanner.nextDouble() * 255).toInt()
    }
    return Color.rgb(r,g,b)
}

然后是 (MainActivity.kt:72),这是我获取方法以显示它的地方:

userImageNavHeader.setBackgroundColor(UserDataService.returnAvatarColor(UserDataService.avatarColor))

每当我 运行 应用程序运行时,但一旦我尝试创建头像并获取其 background color 它就会崩溃,如果我删除该方法,它会恢复正常运行很好。

我设法通过删除

解决了这个问题
    val scanner = Scanner(strippedColor)

方法和显示如下:

if (Scanner(strippedColor).hasNext()) {
    r = (Scanner(strippedColor).nextDouble() * 255).toInt()
    g = (Scanner(strippedColor).nextDouble() * 255).toInt()
    b = (Scanner(strippedColor).nextDouble() * 255).toInt()
}