我在Alamofire API调用时出现"NSURLErrorDomain Code = -1004"错误,但仅在应用程序启动后几秒钟(或在应用程序打开后休息几分钟并在此之后拨打电话)
如果我在几秒钟之后尝试拨打同一个电话,一切正常.我搜索了所有Stack Overflow问题并检查了以下所有可能的原因:
我的直觉是,获取网络设置需要几秒钟,当我在完成之前进行API调用时,它会立即失败.或者..我在后台使用Websocket可能是相关的?
FAILURE:Error Domain = NSURLErrorDomain Code = -1004"无法连接到服务器." UserInfo = {NSUnderlyingError = 0x137d39380 {Error Domain = kCFErrorDomainCFNetwork Code = -1004"(null)"UserInfo = {NSErrorPeerAddressKey = {length = 16,capacity = 16,bytes = 0x100201bb341a9f540000000000000000},_ kCFStreamErrorCodeKey = -2200,_kCFStreamErrorDomainKey = 4}}, NSErrorFailingURLStringKey = [FILTERED],NSErrorFailingURLKey = [FILTERED],_ kCFStreamErrorDomainKey = 4,_kCFStreamErrorCodeKey = -2200,NSLocalizedDescription =无法连接到服务器.}
有什么建议?
更新
发现应用程序在启动时发出4个请求,其中1个或2个随机失败,我检查了Nginx访问和错误日志,并且根本没有记录失败的调用.
有谁知道这次崩溃?
Fatal Exception: java.lang.NullPointerException
at com.google.firebase.messaging.FirebaseMessagingService.zzo(Unknown Source)
at com.google.firebase.messaging.FirebaseMessagingService.zzn(Unknown Source)
at com.google.firebase.messaging.FirebaseMessagingService.zzm(Unknown Source)
at com.google.firebase.iid.zzb$2.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)
它不会发生那么多,大约0.1%的会话.
报告的环境:GI-I9500_TMMARS/Android 4.1.1.
android nullpointerexception firebase firebase-cloud-messaging