加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JNI本地引用表摘要(512个条目)

发布时间:2020-12-15 05:01:52 所属栏目:Java 来源:网络整理
导读:我有超过10000个城市名称,我想在ListView中显示.我将这些名称存储为res / values文件夹中的city.xml文件 如下 resourcesstring-array name="city" item chennai,India /itemitem Spring Creek,Australia /item.. 然后我创建一个ArrayAdapter并像这样填充list
我有超过10000个城市名称,我想在ListView中显示.我将这些名称存储为res / values文件夹中的city.xml文件

如下

<resources>
<string-array name="city"> 
<item>  chennai,India </item>
<item>  Spring Creek,Australia </item>
.
.

然后我创建一个ArrayAdapter并像这样填充listView.

String[] cityDetails = res.getStringArray(R.array.city); // <-- getting Error in this line
myAdapter = new ArrayAdapter<String>(this,R.layout.ap_details_row,R.id.aNameTV,cityDetails );
myLV.setAdapter(myAdapter);

它在API 13级及以上设备中运行良好.但是在API 13级设备下面,我收到以下错误.

W/dalvikvm(306): ReferenceTable overflow (max=512)
 W/dalvikvm(306): Last 10 entries in JNI local reference table:
  W/dalvikvm(306):   502: 0x45fbb330 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   503: 0x45fbb388 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   504: 0x45fbb3e0 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   505: 0x45fbb438 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   506: 0x45fbb498 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   507: 0x45fbb4f8 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   508: 0x45fbb558 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   509: 0x45fbb5d0 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   510: 0x45fbb638 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306):   511: 0x45fbb698 cls=Ljava/lang/String; (28 bytes)
  W/dalvikvm(306): JNI local reference table summary (512 entries):
  W/dalvikvm(306):     3 of Ljava/lang/Class; 164B (2 unique)
  W/dalvikvm(306):   507 of Ljava/lang/String; 28B (507 unique)
  W/dalvikvm(306):     1 of [Ljava/lang/String; 28B
  W/dalvikvm(306):     1 of [Ljava/lang/String; 37436B
  W/dalvikvm(306): Memory held directly by tracked refs is 51988 bytes
  E/dalvikvm(306): Failed adding to JNI local ref table (has 512 entries)
  I/dalvikvm(306): "main" prio=5 tid=1 RUNNABLE
  I/dalvikvm(306):   | group="main" sCount=0 dsCount=0 s=N obj=0x4001d8e0 self=0xccb0
  I/dalvikvm(306):   | sysTid=306 nice=0 sched=0/0 cgrp=default handle=-1345026008
  I/dalvikvm(306):   | schedstat=( 1050455605 562911400 652 )
  I/dalvikvm(306):   at android.content.res.AssetManager.getArrayStringResource(Native Method)
  I/dalvikvm(306):   at android.content.res.AssetManager.getResourceStringArray(AssetManager.java:186)
  I/dalvikvm(306):   at android.content.res.Resources.getStringArray(Resources.java:381)
  I/dalvikvm(306):   at com.mypro.main.HomeActivity.onCreate(HomeActivity.java:184)
 I/dalvikvm(306):   at dalvik.system.NativeStart.main(Native Method)
 E/dalvikvm(306): VM aborting

任何帮助,将不胜感激.

解决方法

一些想法:

1-一次显示一页数据.向下滚动时,请加载更多数据.

2-滚动10000条记录到最后将需要永远.通过搜索表单访问您的数据.将结果限制为100条记录.

3-如果数据已排序,请将项目组合在一起并提供索引.例如,字母列表可以分成26个子集.第一页显示字母表,您必须单击一个字母才能转到子集.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读