Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通过Redis发布消息时OutOfMemory异常_Android_Json_Memory_Redis_Heap - Fatal编程技术网

Android 通过Redis发布消息时OutOfMemory异常

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

我想将JSON消息发布到Redis服务器。此JSON消息包含一个Base64编码的音频文件,原始文件约为2.5 MB(可能会根据音频文件的持续时间进一步更改)。我想使用android应用程序将此编码音频文件作为JSON消息发布到Redis。下面是我使用过的一段代码:

JSONObject servicedData=receivedJSON.getJSONObject("data");
long dataPublished=jedisConnection.publish(queryNo, servicedData.toString());
我使用android应用程序创建了一个JSON对象,提取其中的数据部分(包含编码的音频文件),然后将其发布到一个频道。此代码适用于较小的文件,但只要文件大小超过2MB,就会引发内存不足异常。以下是我得到的错误日志:


在做了大量研究之后,我发现一个字符串使用设备的堆来创建对象,我应该使用json解析器来分块读取json,但我不能这样做,因为我最终不得不将整个json作为字符串发布。非常感谢您对我如何完成此任务的任何想法/帮助。

数据包含音频文件(base64编码)“数据”是JSON密钥,其值是音频文件作为字符串尝试这些解决方案:如果它不起作用,请告诉我!!