Android 通过Redis发布消息时OutOfMemory异常
我想将JSON消息发布到Redis服务器。此JSON消息包含一个Base64编码的音频文件,原始文件约为2.5 MB(可能会根据音频文件的持续时间进一步更改)。我想使用android应用程序将此编码音频文件作为JSON消息发布到Redis。下面是我使用过的一段代码:Android 通过Redis发布消息时OutOfMemory异常,android,json,memory,redis,heap,Android,Json,Memory,Redis,Heap,我想将JSON消息发布到Redis服务器。此JSON消息包含一个Base64编码的音频文件,原始文件约为2.5 MB(可能会根据音频文件的持续时间进一步更改)。我想使用android应用程序将此编码音频文件作为JSON消息发布到Redis。下面是我使用过的一段代码: JSONObject servicedData=receivedJSON.getJSONObject("data"); long dataPublished=jedisConnection.publish(que
JSONObject servicedData=receivedJSON.getJSONObject("data");
long dataPublished=jedisConnection.publish(queryNo, servicedData.toString());
我使用android应用程序创建了一个JSON对象,提取其中的数据部分(包含编码的音频文件),然后将其发布到一个频道。此代码适用于较小的文件,但只要文件大小超过2MB,就会引发内存不足异常。以下是我得到的错误日志:
在做了大量研究之后,我发现一个字符串使用设备的堆来创建对象,我应该使用json解析器来分块读取json,但我不能这样做,因为我最终不得不将整个json作为字符串发布。非常感谢您对我如何完成此任务的任何想法/帮助。数据包含音频文件(base64编码)“数据”是JSON密钥,其值是音频文件作为字符串尝试这些解决方案:如果它不起作用,请告诉我!!