错误 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 控制台传递了正确的值
测试用例:--
如果我在 huuuuuu?.setBackgroundColor(Color.parseColor(#008000))
中传递硬编码值 --> 它起作用了
如果我通过 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()))
我一直在使用 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 控制台传递了正确的值
测试用例:--
如果我在
huuuuuu?.setBackgroundColor(Color.parseColor(#008000))
中传递硬编码值 --> 它起作用了如果我通过 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()))