使用资源文件,我创建了一个大的hashmap
HashMap<String, String> bigHash = new HashMap<String, String>();
public void createHash(){
String [] items = getResources().getStringArray(R.array.dual_strings);
String [] temp;
for ( String s : items ){
temp = s.split("@");
bigHash.put(temp[0],temp[1]);
}
}
dual_string.xml充满了像这样的记录 “睡觉@一天睡得超过6小时”
但是,我尝试了一个大的(~1000项)dual_strings.xml文件,应用程序在启动后立即崩溃。 看着LogCag “dalvikvm无法添加到JNI本地ref表(有512个条目)”
我可以做些什么来创建和使用我的长资源文件中的大哈希? 感谢
答案 0 :(得分:2)
这看起来像是Android的getStringArrayResources本机代码中的一个错误。我发现已经存在一个错误。在本机代码中很容易看到这个原因(引用是在循环中创建的,但是没有清理)。
目前,您必须解决此错误。您必须将字符串数组拆分为每个小于500个字符串的块,或者编写自己的自定义字符串数组加载方法。也许其他人可以提出更好的解决方案。