实际上你可以让 CocoonJS 与 Emulator 一起工作。我之前曾与 Ludei 联系过一些邮件来追踪 JNI 错误,这里是关于如何启动兼容模拟器的摘录。这是几个月前的事,也是 2013.07.26 的版本,带有 apk md5sum 55aa7f226b04d698382a604299357094,版本 1.3(尽管它被宣传为 1.4)。
关键部分是-gpu on
开关,并且可以选择关闭 JNI 检查(对于模拟器/某些根设备):
- 将 SDK 工具更新到 r21,将平台工具更新到 r16
- tools$ ./android create avd -n A15 -t android-15 #(也可以做更高平台级别的模拟器)
- 工具$ ./emulator -avd A15 -gpu on
- 平台工具$ wget http://storage.cocoonjsservice.ludei.com/CocoonJSLauncher.apk
- (可选)删除以前的版本 ./adb uninstall com.ideateca.cocoonjslauncher
- ./adb install CocoonJSLauncher.apk
- ./adb logcat
- 在模拟器上启动应用程序,观察日志
可选择禁用 JNI 检查以解决 CocoonJS 错误(如果启动 CocoonJS 失败并出现 JNI 异常,例如“JNI WARNING: 0x412c40a8 is not a valid JNI reference”):
adb shell stop
adb shell setprop dalvik.vm.checkjni false
adb shell start
(然后模拟器/设备重启,重启后不进行JNI检查,来源:http: //developer.android.com/training/articles/perf-jni.html)
顺便说一句,如果你想检查一下,在真正的非 root 设备上设置checkjni
为使用上述方法也会导致问题。true
Box2D、Sprite demo、Fonts demo作品,其他的没查。