错误 java.lang.NumberFormatException:输入字符串:firebase 远程配置中的“008000”

error java.lang.NumberFormatException: For input string: "008000 " in remote config in firebase

我一直在使用 firebase 参考这个实现远程配置 --> https://www.warmodroid.xyz/tutorial/firebase/how-to-set-firebase-remote-config-values-in-android/

我在布局中使用了一个 textview 进行测试,但它因 java.lang.NumberFormatException: For input string: "008000 "

而崩溃

这是我的代码:---

   {
    val configSettings = FirebaseRemoteConfigSettings.Builder()
       // .setDeveloperModeEnabled(BuildConfig.DEBUG)
        .setMinimumFetchIntervalInSeconds(3600L)
        .build()
    mFirebaseRemoteConfig?.setConfigSettingsAsync(configSettings)

    getRemoteConfigValues()
    }
   .
   .
    .
    .
 private fun getRemoteConfigValues() {
    //here I have set the cache expiration duration to 1 hour
    //It means app will refresh after every 1 hour to check
    // if some changes are there in remote config
    var cacheExpiration: Long = 3600

    mFirebaseRemoteConfig.fetch(cacheExpiration).addOnCompleteListener(this) { task ->
        if (task.isSuccessful) {
            Toast.makeText(applicationContext, "Fetch Succeeded", Toast.LENGTH_SHORT).show()
            mFirebaseRemoteConfig.fetchAndActivate()
        } else {
            Toast.makeText(applicationContext, "Fetch Failed", Toast.LENGTH_SHORT).show()
        }
        //changing the textview and backgorund color
        setRemoteConfigValues()
    }
}

private fun setRemoteConfigValues() {
    val remoteValueBackground = mFirebaseRemoteConfig.getString(COLOR_CONFIG_KEY)
    if (remoteValueBackground.isNotEmpty()) {
        huuuuuu?.setBackgroundColor(Color.parseColor(remoteValueBackground))
    }
}

我调试此行 huuuuuu?.setBackgroundColor(Color.parseColor(remoteValueBackground)) 以获得它在调试器中显示的值 remoteValueBackground="#0080000\t" 尽管我从远程配置 firebase 控制台传递了正确的值

测试用例:--

  1. 如果我在 huuuuuu?.setBackgroundColor(Color.parseColor(#008000)) 中传递硬编码值 --> 它起作用了

  2. 如果我通过 remoteValueBackground.trim() 方法,它会起作用

但是为什么这个 huuuuuu?.setBackgroundColor(Color.parseColor(remoteValueBackground)) 给出 "#008000\t"

谢谢需要帮助

您的错误消息说字符串中有一个 space,看到了吗?

java.lang.NumberFormatException: For input string: "008000 "
                                                          ^

因此无法解析为整数。

编辑 根据这个,它实际上是一个制表符:

"#008000\t"

这就是 .trim() 起作用的原因,它以任何一种方式删除了白色 space。该字符是否出现在 Firebase 文本字段中?也许尝试再次输入(特别是如果您将其粘贴)

只需调用 trim() 方法即可删除空格

huuuuuu?.setBackgroundColor(Color.parseColor(remoteValueBackground.trim()))