【问题标题】:String Array OutOfMemoryError字符串数组 OutOfMemoryError
【发布时间】:2015-11-13 07:37:52
【问题描述】:

在我正在编写的应用程序中,我将 XML 加载到 Java String[] 中,然后将每个项目转换为对象并将它们添加到对象数组中。

下面是我的代码:

Java 部分,带有 do-while 循环

ArrayList<ExpandListGroup> list = new ArrayList<ExpandListGroup>();
    ArrayList<ExpandListChild> list2 = new ArrayList<ExpandListChild>();
    ExpandListGroup gru1 = new ExpandListGroup();
    gru1.setName(getString(R.string.album_vancouver));
    String[] tempArray = getResources().getStringArray(R.array.album_array_vancouver);
    int count = 0;
    int max = tempArray.length;
    do {
        ExpandListChild ch = new ExpandListChild();
        ch.setName(tempArray[count]);
        ch.setTag(null);
        list2.add(ch);
    } while(count <= max);
    gru1.setItems(list2);
    list.add(gru1);

以及 XML 中的数组

<string name="album_vancouver">Vancouver</string>
<string name="song_vancouver_1">Future Wars</string>
<string name="song_vancouver_2">A Word Of Welcome And Of Warning</string>
<string name="song_vancouver_3">See You In Vancouver</string>
<string name="song_vancouver_4">To Withstand The Force Of Storms</string>
<string name="song_vancouver_5">He Is Here, He Is Not Afraid</string>
<string name="song_vancouver_6">The Surgeon And The Scientist</string>
<string name="song_vancouver_7">Fairmount</string>
<string name="song_vancouver_8">Untitled</string>
<string-array name="album_array_vancouver">
    <item>@string/song_vancouver_1</item>
    <item>@string/song_vancouver_2</item>
    <item>@string/song_vancouver_3</item>
    <item>@string/song_vancouver_4</item>
    <item>@string/song_vancouver_5</item>
    <item>@string/song_vancouver_6</item>
    <item>@string/song_vancouver_7</item>
    <item>@string/song_vancouver_8</item>
</string-array>

我在运行时收到java.lang.OutOfMemoryError,位于“list2.add(ch)”行。
我可以做些什么来完成这项工作?

【问题讨论】:

    标签: java android arrays xml


    【解决方案1】:

    你在那里有无限循环,你没有在 do-while 语句中增加 count 变量。

    使用ch.setName(tempArray[count++]);

    另外,while 条件应该是count &lt; max,否则会得到 ArrayIndexOutOfBoundsException。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-10
      • 2013-04-15
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多