我需要从 Firebase
中远程config
的默认值获取JSONObject
。到FirebaseRemoteConfig.getString()
,它被转换为字符串,但不在JSONObject
中,说
org.json.JSONException: Unterminated object at character xx
我在下面附加远程config
的默认值:
<entry>
<key>welcome_message</key>
<value>{"version" :1,"type":"category","name":"CATEGORY"}
</value>
</entry>
我现在在下面附加我的 Java 代码:
String welcomeMessage = mFirebaseRemoteConfig.getString(WELCOME_MESSAGE_KEY);
JSONObject categoryListInJson = new JSONObject(welcomeMessage);
提前感谢您的回答。
这是Android Studio 3.0或更高版本上的错误。
我看到一个错误,即从默认值中选择值时,字符串中的引号被剥离.xml
您可以尝试以下两件事之一吗?
- 启用开发人员模式并将缓存过期时间设置为 0。然后在 Firebase 远程配置控制台上设置 JSON。然后在设备上进行抓取。这是因为错误不是从控制台获取 JSON 时出现的,而是仅在从默认 xml 中提取值时才出现的。
- 不要在默认使用字符串.xml JSON,而是使用一个数字 - 看看这是否有效?
谢谢
此问题有多种解决方案
1. 使用 firebaseConfig.setDefaults(Map); 设置默认配置。
2. 在文件中的字符串中使用反斜杠 () .xml双引号(")。
3. 替换
classpath 'com.android.tools.build:gradle:3.0.1' with
classpath 'com.android.tools.build:gradle:2.3.3'
and
google() with
maven { url 'https://maven.google.com' }
4. 在 gradle.properties 中添加 android.enableAapt2 = false