LogCat输出信息如下:
=================================================================================
W/dalvikvm(1214): ReferenceTable overflow (max=512)
W/dalvikvm(1214): Last 10 entries in JNI local reference table:
W/dalvikvm(1214): 502: 0x4050bed0 cls=L
android/graphics/Point; (20 bytes)
W/dalvikvm(1214): 503: 0x4050bee8 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): 504: 0x4050bf00 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): 505: 0x4050bf18 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): 506: 0x4050bf30 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): 507: 0x4050bf48 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): 508: 0x4050bf60 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): 509: 0x4050bf78 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): 510: 0x4050bf90 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): 511: 0x4050bfa8 cls=Landroid/graphics/Point; (20 bytes)
W/dalvikvm(1214): JNI local reference table summary (512 entries):
W/dalvikvm(1214): 1 of Ljava/lang/Class; 164B
W/dalvikvm(1214): 1 of Ljava/lang/Class; 212B
W/dalvikvm(1214): 1 of Ljava/lang/Class; 236B
W/dalvikvm(1214): 1 of Ljava/lang/Class; 284B
W/dalvikvm(1214): 1 of Ljava/lang/Class; 476B
W/dalvikvm(1214): 1 of Ljava/lang/Class; 572B
W/dalvikvm(1214): 2 of Ljava/lang/String; 28B (2 unique)
W/dalvikvm(1214): 1 of [Ljava/lang/String; 28B
W/dalvikvm(1214): 502 of Landroid/graphics/Point; 20B (502 unique)
W/dalvikvm(1214): 1 of Landroid/graphics/Point; 28B
W/dalvikvm(1214): Memory held directly by tracked refs is 12096 bytes
E/dalvikvm(1214): Failed adding to JNI local ref table (has 512 entries)
=================================================================================
错误描述:
JNI中通过java传过来的点的集合的对象创建C++点集合的对象,其中一段代码如下:
--------------------------------------------------
jclass objclass = env->GetObjectClass(objPoint);
jfieldID id = env->GetFieldID(objclass, ..., ...);
point.x = env->GetIntField(objPoint, id);
id = env->GetFieldID(objclass, ..., ...);
point.y = env->GetIntField(objPoint, id);
--------------------------------------------------
这样循环可以创建251个点,但是到第252次调用上述代码的时候又出现最上面的错误。
在网上查了一下,return前加入一句:
env->DeleteLocalRef(objclass);
相关推荐
D/dalvikvm( 1849): GC_FOR_ALLOC freed 673K, 22% free 5143K/6512K, paused 41ms, total 47ms I/ActivityManager( 1670): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=...
- 在调试过程中,可能会遇到类引用找不到的情况,例如:“W/dalvikvm: VFY: unable to find class referenced in signature (Lcom/mstar/tv/service/skin/S3DSkin;)”。 - 这些警告通常意味着代码中引用的某些类没有...
核心:dalvikvm –cp dex化jar路径 需要执行的主函数类完整类名 主函数参数主函数多个参数的空格隔开前置说明ANDROID_DATA默认为/data执行dalvikvm后需要生成一个dex文件存放在$ANDROID_DATA/dalvik-cache 目录下...
W/dalvikvm(12517): threadid=1: thread exiting with uncaught exception (group=0x4001d7f0) E/AndroidRuntime(12517): FATAL EXCEPTION: main E/AndroidRuntime(12517): java.lang.OutOfMemoryError: bitmap size...
本文从应用程序到内核的视角对Android框架进行了介绍。Android操作系统具有诸多优点,例如高度的应用可移植性、一致的用户体验、基于组件的设计方法以及对资源有限的手持设备的适用性。在设计架构时,考虑到性能问题...
- **D/dalvikvm(3652):DexOpt:load273ms,verify+opt1841ms,3289956bytes** - **知识点**:此条日志记录了Dalvik虚拟机执行DexOpt操作的时间和内存消耗情况。 - **load273ms**:加载.dex文件所需时间。 - **verify...
DalvikVM 是 Android 系统早期采用的虚拟机,负责运行基于 Dex 格式的应用程序。在 HarmonyOS 2 中,DalvikVM 的存在意味着华为在构建其操作系统时,可能沿用了或对 Android 的 Dalvik 进行了优化和改造,以适应自身...
android的虚拟机dalvik源码: run-core-tests.sh Android.mk NOTICE MODULE_LICENSE_APACHE2 README.txt /libdex /libcore-disabled /dexopt /libcore /tools /tests .../dalvikvm /docs /dvz /vm /dx
6. **设备上的运行**:当用户下载并安装APK后,Android系统会使用dalvikvm进程加载.dex文件,并执行其中的指令。Android 5.0(Lollipop)后,Dalvik VM被ART(Android RunTime)所取代,但基本的编译和执行流程相似...
对于Android开发者来说虽然使用了可以自动管理内存的Java语言,但是对于内存管理不当,可能你的应用不断出现类似INFO/dalvikvm-heap(10798): Grow heap (frag case) to 6.437MB for 1114126-byte allocation,而出现...
- **dalvik/dalvikvm/main.c**:这是Dalvik虚拟机的主要实现文件。Dalvik虚拟机的设计考虑到了低内存环境下的性能优化。 通过以上对Android 2.1源码结构的详细解析,我们可以看到每个目录及其子目录所扮演的角色,...
D/dalvikvm: <GC_Reason> , , 其中,GC_Reason是触发这次GC操作的原因,一般情况下一共有以下几种触发GC操作的原因: * GC_CONCURRENT: 当应用程序的堆内存快要满的时候,系统会自动触发GC操作来释放内存。 * GC_...
05:15:04.764: ERROR/dalvikvm-heap(264): 3528000-byte external allocation too large for... 05:15:04.764: ERROR/(264): VM won’t let us allocate 3528000 bytes 05:15:04.764: DEBUG/skia(264): —decoder->...
11-23 09:44:56.947: D/dalvikvm(1585): GC_FOR_MALLOC freed 3278 objects / 311568 bytes in 31ms rejecting opcode 0x21 at 0x000a rejected Lorg/apache/log4j/config/PropertySetter;.getPropertyDescriptor ...
环境没有Android运行时组件,因此某些功能将不可用(DalvikVM,OpenSLES等)。 如何使用 确保已安装并正在运行Docker。 git clone https://github.com/termux/termux-docker && cd ./termux-docker ./run.sh或./...
如果没有这些条件,生成的.hprof文件可能无法正常创建,logcat中会显示错误信息,如`ERROR/dalvikvm(8574): hprof: can't open /sdcard/com.xxx.hprof-hptemp: Permission denied.`。 - **手动指定.hprof文件的生成...
虚拟机是一种通过软件模拟实现的计算机,它包括处理器、堆栈、寄存器等硬件架构的抽象,并具备自己的一套指令系统,即字节码中的各个指令。虚拟机可以模拟出多种计算机的功能,从而在不同的硬件和操作系统上都能够...
adb shell exec dalvikvm -Xbootclasspath:p/system/framework/core.jar:/system/framework/framework.jar:/data/app/Notepadv3.apk \ junit.textui.TestRunner com.google ``` 这条命令指定了测试类的路径,并...
例如,错误信息"02-04 21:46:08.703: ERROR/dalvikvm-heap(2429): 1920000-byte external allocation too large for this process"表明系统尝试分配1.92MB的外部内存,但超过了进程的限制。这可能是因为一次性加载了...
4. **使用`dalvikvm-heap`权限**:在AndroidManifest.xml中添加`<uses-permission android:name="android.permission.DUMP" />`,这允许应用获取设备状态信息,可能有助于执行更复杂的shell命令。 5. **使用AIDL...