【发布时间】:2011-12-04 13:50:48
【问题描述】:
jstring Java_com_example_hellojni_HelloJni_buildString(JNIEnv *env, jobject sThis){
for (int i=0; i < 100000; i++){
char* c=(char*)env->NewStringUTF("xx");
}
return env->NewStringUTF("test");
}
12-04 14:46:36.399: 调试/dalvikvm(8086): 试图加载 lib /data/data/com.example.hellojni/lib/libhello-jni.so 0x405143d8 12-04 14:46:36.399:调试/dalvikvm(8086):添加了共享库 /data/data/com.example.hellojni/lib/libhello-jni.so 0x405143d8 12-04 14:46:36.431: WARN/dalvikvm(8086): ReferenceTable 溢出 (max=1024) 12-04 14:46:36.431: WARN/dalvikvm(8086): JNI local 中的最后 10 个条目 参考表:12-04 14:46:36.431: WARN/dalvikvm(8086): 1014: 0x4052b258 cls=Ljava/lang/字符串; (28 字节)12-04 14:46:36.431: 警告/dalvikvm(8086): 1015: 0x4052b298 cls=Ljava/lang/String; (28 字节)12-04 14:46:36.431:警告/dalvikvm(8086):1016:0x4052b2d8 cls=Ljava/语言/字符串; (28 字节)12-04 14:46:36.431: 警告/dalvikvm(8086): 1017: 0x4052b318 cls=Ljava/lang/String; (28 字节)12-04 14:46:36.431:警告/dalvikvm(8086):1018:0x4052b358 cls=Ljava/语言/字符串; (28 字节)12-04 14:46:36.431: 警告/dalvikvm(8086): 1019: 0x4052b398 cls=Ljava/lang/String; (28 字节)12-04 14:46:36.431:警告/dalvikvm(8086):1020:0x4052b3d8 cls=Ljava/语言/字符串; (28 字节)12-04 14:46:36.431: 警告/dalvikvm(8086): 1021: 0x4052b418 cls=Ljava/lang/String; (28 字节)12-04 14:46:36.431:警告/dalvikvm(8086):1022:0x4052b458 cls=Ljava/语言/字符串; (28 字节)12-04 14:46:36.431: 警告/dalvikvm(8086): 1023: 0x4052b498 cls=Ljava/lang/String; (28 字节) 12-04 14:46:36.431: WARN/dalvikvm(8086): JNI 本地参考 表格摘要(1024 个条目):12-04 14:46:36.431:WARN/dalvikvm(8086): Ljava/lang/类的1个; 236B 12-04 14:46:36.431: 警告/dalvikvm(8086):
Ljava/lang/类的1个; 284B 12-04 14:46:36.431: 警告/dalvikvm(8086):
Ljava/lang/类的1个; 572B 12-04 14:46:36.431:警告/dalvikvm(8086): Ljava/lang/String 的 1020; 28B (1020 唯一) 12-04 14:46:36.431: WARN/dalvikvm(8086): 1 of [Ljava/lang/String; 28B 12-04 14:46:36.431:WARN/dalvikvm(8086):内存直接由跟踪 refs 是 29680 字节 12-04 14:46:36.431: 错误/dalvikvm(8086): 失败 添加到 JNI 本地引用表(有 1024 个条目)12-04 14:46:36.431: 信息/dalvikvm(8086):“主要”prio=5 tid=1 RUNNABLE 12-04 14:46:36.431: 信息/dalvikvm(8086):| group="main" sCount=0 dsCount=0 obj=0x4001f1b8 self=0xcee8 12-04 14:46:36.431: INFO/dalvikvm(8086):
| sysTid=8086 nice=0 sched=0/0 cgrp=默认句柄=-1345006496 12-04 14:46:36.431:信息/dalvikvm(8086):在 com.example.hellojni.HelloJni.buildString(本机方法)12-04 14:46:36.431:信息/dalvikvm(8086):在 com.example.hellojni.HelloJni.onCreate(HelloJni.java:93)
很奇怪。如果我的 for next 看起来像这样:
for (int i=0; i < 100; i++){
然后一切正常。
如何重写此代码以运行具有大数字的 for next?
【问题讨论】:
-
那个循环的目的到底是什么?
-
对不起,我不明白你的问题。代码太多而文本太少。请准确描述您想要实现的目标以及您的问题。
-
我想在 C 中为下一个循环运行一次大运行,从 JNI/Java 调用
标签: java android c java-native-interface