Android 将资源添加到数组时,添加到JNI本地引用表(有512个条目)失败

Android 将资源添加到数组时,添加到JNI本地引用表(有512个条目)失败,android,arrays,Android,Arrays,当我试图将所有引用都放入数组时,我得到了一个错误。无法添加到JNI本地引用表(有512个条目) 我尝试将所有字符串读入数组,如下所示: String[] aStrings = mAppContext.getResources().getStringArray(R.array.a_array) 在xml中,我有500多行字符串,如: <string-array name="a_array"> <item>0@100@Name1</item> &

当我试图将所有引用都放入数组时,我得到了一个错误。无法添加到JNI本地引用表(有512个条目)

我尝试将所有字符串读入数组,如下所示:

String[] aStrings = mAppContext.getResources().getStringArray(R.array.a_array)
在xml中,我有500多行字符串,如:

<string-array name="a_array">
    <item>0@100@Name1</item>
    <item>1@101@name2</item>
    ...
    ...
    ...
    <item>600@101@name600</item>
</string-array>

0@100@名称1
1@101@姓名2
...
...
...
600@101@姓名600
如果我在示例note2(4++)中运行我的代码,一切正常,如果我在wildfire(2++)中运行它,我会得到错误。如果我将条目减少到500以下,则一切正常。我相信我得到的错误是因为旧设备内存不足。当错误发生时,应用程序崩溃

现在我有两个问题:

  • 我能避免这个错误吗?怎么解决这个问题?这样我的应用程序就不会崩溃
  • 是否有方法捕获此错误并加载较小的数组?(我试过用try-catch-block,但没有成功)

  • 我确实解决了这个问题。除了创建
    之外,我创建了:

    <string name="a_array">
      0@100@Name1#
      1@101@name2#
      ...
      ...
      N@N@nameN
    </string>
    
    
    0@100@名称1#
    1@101@姓名2#
    ...
    ...
    N@N@纳明
    
    然后我将字符串读入变量,并使用
    .split(“#”)将其解析为数组