【问题标题】:Failed adding to JNI local ref table (has 512 entries) When Add resources to Array向数组添加资源时添加到 JNI 本地引用表失败(有 512 个条目)
【发布时间】:2013-12-09 19:36:59
【问题描述】:

当我尝试将所有引用放入数组时出现错误。添加到 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>

如果我在例如 note2(4.+) 中运行我的代码,一切正常,如果我在 Wildfire(2.+) 中运行它,我会出错。如果我将条目减少到 500 以下,那么一切正常。我相信我得到的错误是因为旧设备上的内存不足。当错误发生时应用程序崩溃。

现在我有两个问题:

  1. 我可以避免这个错误吗?以某种方式解决这个问题?以免我的应用崩溃。
  2. 有没有办法捕捉这个错误并加载更小的数组? (我尝试了 try catch 块,但没有成功)

【问题讨论】:

    标签: android arrays


    【解决方案1】:

    我确实解决了这个问题。 Insted 创建 &lt;string-array name="a_array"&gt; 我创建了:

    <string name="a_array">
      0@100@Name1#
      1@101@name2#
      ...
      ...
      N@N@nameN
    </string>
    

    然后我将字符串读入变量,并使用.split("#"); 将其解析为数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      相关资源
      最近更新 更多