gpt4 book ai didi

1490086 字节的 Android 错误 : I/dalvikvm-heap: Grow heap (frag case) to 16. 159MB

转载 作者:行者123 更新时间:2023-11-30 05:08:30 25 4
gpt4 key购买 nike

我正在用 for 循环中的对象编写一个 JSON 文件
当传输到 JSON 文件的数据量增加时,我在 Logcat 中看到以下错误:

I/dalvikvm-heap: Grow heap (frag case) to 16.159MB for 1490086-byte allocation

这里有什么问题?我已经验证了关于 Grow heap (frag case) 的其他一些帖子,但没有结果!
是什么增加了导致此类错误的堆大小?

循环代码:

JSON_Functions_PRD mJSONF_Test = new JSON_Functions_PRD();
JSONObject obj = new JSONObject();
String Temp;
Temp = obj.toString();
mJSONF_Test.setJSONobj_PRD(Temp);
mJSONF_Test.CreateMenu_SMS_Naked();

A_DataClass m_DataClass = new A_DataClass();
int count = 10000;
for (int i = 0; i < count; i++)
{
mDataClass.setA("A1");
mDataClass.setB("B1");
mJSONF_Test.setItem_M0(mDataClass);
}

JSON 函数:

public class JSON_Functions_PRD {

String mJSONString_Result;
JSONObject obj = new JSONObject();

public void setJSONobj_PRD(String mJSONString) {
try {
mJSONString_Result = mJSONString;
obj = new JSONObject(mJSONString_Result);
} catch (JSONException e) {
e.printStackTrace();
}
}

public String getJSON_PRD() {

mJSONString_Result = obj.toString();
return mJSONString_Result;
}

public void CreateMenu_SMS_Naked() {
JSONArray jA1 = new JSONArray();
try {
obj.put("M0", jA1);
} catch (JSONException e) {
e.printStackTrace();
}
}


public void setItem_M0(A_DataClass Item) {
JSONArray jA1 = new JSONArray();
JSONObject jO1 = new JSONObject();
JSONObject jO2 = new JSONObject();
try {
jA1 = obj.getJSONArray("M0");

jO1.put("a", Item.getA());
jO2.put("a", Item.getB());
jO1.put("b", jO2);
jA1.put(jO1);
} catch (JSONException e) {
e.printStackTrace();
}
}

数据类:

public class A_DataClass {
String A;
String B;

public A_DataClass()
{
}

public String getA() {
return A;
}
public void setA(String name) {
thisA = name;
}

public String getB() {
return B;
}
public void setB(String name) {
this.B = name;
}
}

编辑:
我应该补充一点,我在 3 台手机(2 台三星,1 台华为)上测试了这个案例,问题只出现在华为

最佳答案

堆可能有很多可用内存,但 fragment 化为小块。如果 VM 找不到足够大的 block 来进行您尝试进行的分配,则会发生 OOME。

关于1490086 字节的 Android 错误 : I/dalvikvm-heap: Grow heap (frag case) to 16. 159MB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54111134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com