我的Android应用程序在firebase服务器上的第二篇文章中崩溃了。在logcat中它显示如下:
On Error GoTo ErrorSkip
答案 0 :(得分:2)
Firebase dev在这里。我们将对此进行一番研究,并尝试在将来的Firebase版本中修复此问题。目前,我猜您需要停用StrictMode。
答案 1 :(得分:1)
由于Android运行在资源非常有限的设备上,因此确保资源不被浪费尤为重要。 Java非常擅长确保资源在不需要时立即释放,并且对于许多事情它自动执行此操作,但有些事情无法可靠地完成。
在logcat中获取的内容是你正在抓取某种资源,但永远不会释放它。它看起来好像是一个你正在抓取的网络套接字。您是否正在打开网络连接但是在完成后不再关闭它?
答案 2 :(得分:0)
完全同意chiastic-security's answer。
并自己添加: 每种本地包装语言(也在Java中)的每个资源都需要关闭不需要更多使用的开放资源。
在Android开发中,在这种情况下,您需要检查关闭资源:
错误
在附加的堆栈跟踪中获取资源但从未发布。有关避免资源泄漏的信息,请参阅java.io.Closeable。
表示(可能在您的情况下)您在使用它之后没有关闭读取数据的流。
您需要获取响应流,完全读取并关闭它(即使响应代码不正常) - 我的意思是 catch-finaly 阻止。
答案 3 :(得分:0)
(firebase dev here) 我们的修补程序将出现在Android Firebase客户端的下一个版本中。在此之前,如果您使用Strict Mode,请使用penaltylog而不是penaltydeath并忽略错误。