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个子集.第一页显示字母表,您必须单击一个字母才能转到子集. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |