突然间,我们遇到了错误:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object reference
at blq.run(:com.google.android.gms.DynamiteModulesC@11518446:56)
at java.lang.Thread.run(Thread.java:818)
在当前版本以及其他应用版本中,一切都运行良好,但现在所有应用版本都会出现此问题。
我们正在使用25.3.1支持lib版本和11.0.2播放服务版本。
奇怪的事实:
如果使用new / sandbox firebase数据库,则完全按预期工作。
更多日志 11-04 17:37:35.560 15770-15784 / com.nobroker.app D / FirebaseAuth:通知id令牌监听器有关用户(ff8081814c58efc3014c6a0a558f32ff)。 11-04 17:37:35.560 15770-15770 / com.nobroker.app D / FirebaseApp:通知身份验证状态监听器。 11-04 17:37:35.560 15770-15770 / com.nobroker.app D / FirebaseApp:通知1个身份验证状态监听器。 11-04 17:37:35.561 15770-15876 / com.nobroker.app D / RepoOperation:Auth令牌已更改,触发身份验证令牌刷新 11-04 17:37:35.561 15770-15770 / com.nobroker.app D / AppController:signInWithCustomToken:onComplete:true 11-04 17:37:35.561 15770-15876 / com.nobroker.app D / PersistentConnection:pc_0 - 刷新身份验证令牌。 11-04 17:37:35.561 15770-15770 / com.nobroker.app I / deekshant:录制事件。类别:CUSTOM_EVENTS事件:FAILED_FIREBASE_AUTH附加:{src = AFTER_PUBLIC_LOGIN} 11-04 17:37:35.567 15770-15847 / com.nobroker.app D / FA:记录事件(FE):select_content,Bundle [{item_name = FAILED_FIREBASE_AUTH,firebase_event_origin(_o)= app,firebase_screen_class(_sc)= NBLauncherActivity, firebase_screen_id(_si)= - 3142508212762295688,item_category = CUSTOM_EVENTS,content_type = CUSTOM_EVENTS,item_id = FAILED_FIREBASE_AUTH}] 11-04 17:37:35.596 15770-15847 / com.nobroker.app D / FA:记录事件(FE):CUSTOM_EVENTS,Bundle [{item_name = FAILED_FIREBASE_AUTH,firebase_event_origin(_o)= app,firebase_screen_class(_sc)= NBLauncherActivity, firebase_screen_id(_si)= - 3142508212762295688,item_category = CUSTOM_EVENTS,content_type = CUSTOM_EVENTS,item_id = FAILED_FIREBASE_AUTH}] 11-04 17:37:35.707 15770-15770 / com.nobroker.app V / deekshant:onActivityStopped count 2 11-04 17:37:35.707 15770-15770 / com.nobroker.app V / deekhshant:onActivityDestroyed count 1 11-04 17:37:35.717 15770-15876 / com.nobroker.app D / WebSocket:ws_1 - 已关闭 11-04 17:37:35.717 15770-15876 / com.nobroker.app D / WebSocket:ws_1 - 关闭自己 11-04 17:37:35.717 15770-15876 / com.nobroker.app D / Connection:conn_1 - 实时连接失败 11-04 17:37:35.717 15770-15876 / com.nobroker.app D / Connection:conn_1 - 关闭实时连接 11-04 17:37:35.717 15770-15876 / com.nobroker.app D / PersistentConnection:pc_0 - 由于OTHER而断开连接 11-04 17:37:35.717 15770-15876 / com.nobroker.app D / PersistentConnection:pc_0 - 调度连接尝试 11-04 17:37:35.717 15770-15876 / com.nobroker.app D / ConnectionRetryHelper:在892ms内调度重试 11-04 17:37:35.899 15770-15919 / com.nobroker.app E / UncaughtException:java.lang.NullPointerException:尝试调用虚方法'java.lang.String java.lang.String.toLowerCase(java.util。 Locale)'在空对象引用上 在blq.run(:com.google.android.gms.DynamiteModulesC@11518438:56) 在java.lang.Thread.run(Thread.java:761) 11-04 17:37:35.902 15770-15847 / com.nobroker.app D / FA:记录事件(FE):app_exception(_ae),Bundle [{firebase_event_origin(_o)= crash,firebase_screen_class(_sc)= NBLauncherActivity,firebase_screen_id (_si)= - 3142508212762295688,timestamp = 1509797255900,fatal = 1}]
答案 0 :(得分:0)
最后,我们解决了这个问题。这是因为来自firebase服务器的响应标头的变化。 谷歌修补了我们的实例运行的几个firebase服务器。 并且响应标题应该是名称:"升级"价值:" websocket"改为"升级"。
Google的回复:
"我真的很抱歉打破你的应用。事实上,我们的最新版本更改了#34;升级:websocket"到"升级:websocket"。即使标题不区分大小写,我们自己的SDK代码也不符合规范。"
谷歌修复了标题问题后,就解决了。