【问题标题】:Android App crash on post of firebase post of data to server将数据发送到服务器的 Firebase 后 Android 应用程序崩溃
【发布时间】:2015-08-14 16:35:09
【问题描述】:

我的 Android 应用程序在我在 firebase 服务器上的第二个帖子中崩溃。在 logcat 中显示如下:

08-14 20:01:55.775    2038-2047/com.spiralaxis.citiconnect E/StrictMode﹕ A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
    java.lang.Throwable: Explicit termination method 'close' not called
            at dalvik.system.CloseGuard.open(CloseGuard.java:184)
            at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:287)
            at com.android.org.conscrypt.OpenSSLSocketImpl.waitForHandshake(OpenSSLSocketImpl.java:623)
            at com.android.org.conscrypt.OpenSSLSocketImpl.getSession(OpenSSLSocketImpl.java:787)
            at com.firebase.tubesock.WebSocket.verifyHost(WebSocket.java:333)
            at com.firebase.tubesock.WebSocket.createSocket(WebSocket.java:319)
            at com.firebase.tubesock.WebSocket.run(WebSocket.java:117)

【问题讨论】:

    标签: java android firebase


    【解决方案1】:

    Firebase 开发人员在这里。我们将对此进行研究,并尝试在 Firebase 的未来版本中修复它。现在,我猜你需要禁用StrictMode

    【讨论】:

      【解决方案2】:

      由于 Android 在资源非常有限的设备上运行,因此确保不浪费资源尤为重要。 Java 非常擅长确保在不需要资源时立即释放资源,并且对于许多事情它会自动执行此操作,但有些事情无法可靠地完成。

      从 logcat 中可以看出,您正在获取某种资源,但从未释放它。它看起来好像是您正在抓取的网络套接字。您是在打开网络连接但完成后没有再次关闭它吗?

      【讨论】:

        【解决方案3】:

        完全同意chiastic-security's answer

        并从自己添加: 每种本机包装语言(也包括 Java)中的每种资源,您都需要关闭不需要更多使用的已打开资源。

        在Android开发中这种情况下你需要检查关闭资源:

        • 位图
        • 光标

        错误

        在附加的堆栈跟踪中获取了资源,但从未释放。有关避免资源泄漏的信息,请参阅 java.io.Closeable。

        意味着(可能在您的情况下)您在使用后没有关闭读取数据的流。

        您需要获取响应流,完整阅读并关闭它(即使响应代码不正确) - 我的意思是 catch-finaly 块。

        【讨论】:

          【解决方案4】:

          (此处为 firebase 开发人员) 我们有一个修复程序,它将出现在我们的 Android Firebase 客户端的下一个版本中。在此之前,如果您使用严格模式,请使用惩罚日志而不是惩罚死亡并忽略错误。

          【讨论】:

            猜你喜欢
            • 2018-04-29
            • 1970-01-01
            • 2018-09-03
            • 1970-01-01
            • 2013-08-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多