在开发版本中,我们通常打开的jni检查选项,(ro.kernel.android.checkjni= 1),
如果安装的apk不是理智的(不是非常吻合JNI接口的),虚拟机会报出:这不是有效的JNI引用,就会导致虚拟机崩溃,导致apk停止
for the development, we usually open the jni check option (ro.kernel.android.checkjni=1). if the apk native code is not every sanity, vm will tell you that
"it's not a valid jni reference" and cause a dalvik crash to stop the apk.
nasty log msg:
09-05 10:24:16.129 W/dalvikvm( 1423): JNI WARNING: 0x417d73f8 is not a valid JNI reference
09-05 10:24:16.129 W/dalvikvm( 1423): in Lcom/zeptolab/ctr/CtrRenderer;.nativeTick:(J)V (GetObjectClass)
09-05 10:24:16.129 I/dalvikvm( 1423): "GLThread 183" prio=5 tid=26 RUNNABLE
09-05 10:24:16.129 I/dalvikvm( 1423): | group="main" sCount=0 dsCount=0 obj=0x41d1e4e8 self=0x19b8d40
09-05 10:24:16.129 I/dalvikvm( 1423): | sysTid=1479 nice=0 sched=0/0 cgrp=default handle=28663136
09-05 10:24:16.129 I/dalvikvm( 1423): | schedstat=( 0 0 0 ) utm=1547 stm=267 core=0
09-05 10:24:16.129 I/dalvikvm( 1423): at com.zeptolab.ctr.CtrRenderer.nativeTick(Native Method)
09-05 10:24:16.129 I/dalvikvm( 1423): at com.zeptolab.ctr.CtrRenderer.onDrawFrame(CtrRenderer.java:424)
09-05 10:24:16.129 I/dalvikvm( 1423): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1470)
09-05 10:24:16.129 I/dalvikvm( 1423): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1217)
09-05 10:24:16.129 I/dalvikvm( 1423):
09-05 10:24:16.129 E/dalvikvm( 1423): VM aborting
09-05 10:24:16.139 F/libc ( 1423): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1)
09-05 10:24:16.639 I/DEBUG ( 141): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-05 10:24:16.639 I/DEBUG ( 141): pid: 1423, tid: 1479 >>> com.zeptolab.ctr.lite.google <<<
09-05 10:24:16.639 I/DEBUG ( 141): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadd00d