【问题标题】:decodeByteArray() returns null roughly 90% of the timedecodeByteArray() 大约 90% 的时间返回 null
【发布时间】:2011-03-22 10:08:36
【问题描述】:

我正在尝试显示通过本地网络发送到我的 android 设备的图像。图像通过 tcp 从计算机发送到我的 android 设备。图片是png的。传过来的数据是png的字节数组流,打包成google protobuf消息。在android端,接收到数据时,读入一个字节数组,然后将该数组交给BitmapFactory.decodeByteArray()。但是,这大约 90% 的时间返回 null。这仅发生在真实设备上,但我目前只能在令人难以置信的 htc 上进行测试。我已经在 android sdk 模拟器上试过这个,我可以 100% 的得到我的图像。

与在线 BitmapFactory 相关的其他问题一直与使用文件流有关,其中解码无法获取全部数据,但我尚未找到任何解决方案,以便开发人员确定数据的全部是收到了,而且它只发生在真实的设备上。

decodeByteArray() 有什么我不知道的用法吗?我传入的byte[] 只是文件本身。

编辑:感谢 Brian Cooley 的第二次洞察。

我判断错误可能在 decodeByteArray() 中太快了。如果有人遇到这个问题,请确保您确保您拥有完整的数据。我错误地假设我的字节流很好。因此,首先对您发送和接收的数据进行快速比较,并确保您得到了应有的数据。

【问题讨论】:

    标签: android bitmapfactory


    【解决方案1】:

    您可能会尝试的一件事是将原始字节写入 SD 卡上的文件并在您的计算机上查看它,就像为 this question 建议的那样

    这将揭示问题是在文件中还是在您的代码中。由于您在模拟器中没有看到问题,我的猜测是它与通过手机下载数据有关。

    【讨论】:

    • 感谢您的回复。在本地写入数据,我肯定看到图像是乱码的。将不得不研究为什么会这样。想知道为什么这有时会起作用。不可思议和模拟器有什么区别?
    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多