有人可以告诉我,如果我在这里遗失了什么吗? 我在shell中尝试以下命令。
$ ./adb shell stop $ ./adb shell setprop dalvik.vm.checkjni是的 $ ./adb shell start
但是当我将apk安装到设备上时,Logcat总是会显示“CheckJNI is OFF”。在eclipse中我还需要做些什么来启用XCheck:Jni标志吗?
感谢您的帮助 BD
答案 0 :(得分:7)
有四种不同的情况,一种用于root设备,一种用于仿真器,一种用于常规设备,一种用于root或常规设备。
在root设备上我能够正常工作:
在adb:
adb shell
在此shell之后启动:
su
stop
setprop dalvik.vm.checkjni true
start
重新启动此设备后,我会看到日志消息:
CheckJNI is ON
对于其他案例,请参阅official docs中的一些理论:
有几种方法可以启用CheckJNI。
如果您正在使用模拟器,则默认情况下CheckJNI处于启用状态。
如果您有root设备,则可以使用以下命令序列在启用CheckJNI的情况下重新启动运行时:
adb shell stop adb shell setprop dalvik.vm.checkjni true adb shell start
在上述任何一种情况下,当运行时启动时,您会在logcat输出中看到类似的内容:
D AndroidRuntime: CheckJNI is ON
如果您有常规设备,可以使用以下命令:
adb shell setprop debug.checkjni 1
这不会影响已经运行的应用程序,但从那时起启动的任何应用程序都将启用CheckJNI。 (将属性更改为任何其他值或只是重新启动将再次禁用CheckJNI。)在这种情况下,您将在下次应用程序启动时在logcat输出中看到类似的内容:
D Late-enabling CheckJNI
您还可以在应用程序的清单中设置 android:debuggable 属性,以便为您的应用启用CheckJNI。请注意,Android构建工具会自动为某些构建类型执行此操作。
答案 1 :(得分:3)
有关所有替代方案,请参阅http://android-developers.blogspot.com/2011/07/debugging-android-jni-with-checkjni.html。
答案 2 :(得分:0)
此处还有一节介绍如何使用checkJNI:
http://www.netmite.com/android/mydroid/dalvik/docs/embedded-vm-control.html