前段时间在使用Cocos2d-x开发游戏的时候,想要直接在虚拟机上面调试,就找了这个Genymotion作为调试用的机子,结果发现一运行马上就崩溃,上网查了一下这篇文章【Cocos2dx+Eclipse+Genymotion】,发现需要安装ARM,便根据查到的文章安装了ARM,安装方法是直接把下载好的压缩文件拖进虚拟机界面即可。
但是安装之后发现还是不行,继续搜索,看到了另外一篇文章【用Genymotion虚拟机运行cocos2dx应用】,看到需要
在proj.Android/jni/Application.mk文件中加入APP_ABI := armeabi x86
以及在/cocos2dx/platform/android/Java/src/org/cocos2dx/lib/Cocos2dxActivity.java 中找到isAndroidEmulator()
把
isEmulator = product.equals(“sdk”) || product.contains(“_sdk”) || product.contains(“sdk_”);
改成
isEmulator = product.equals(“sdk”) || product.contains(“_sdk”) || product.contains(“sdk_”) || product.contains(“vbox”);
然后就可以用了,但是在使用过程中,如果有使用到遮罩之类的方法,还是会报java.lang.IllegalArgumentException: No config chosen异常
接着搜索,看到了这篇文章【java.lang.IllegalArgumentException: No config chosen异常】,里面说到需要设置另外一个 EGLConfigChooser
在AppActivity的中重写onCreateView方法
public Cocos2dxGLSurfaceView onCreateView() {
Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
// TestCpp should create stencil buffer
gLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
return glSurfaceView;
}
最后,再放上一篇参考文章【cocos2d-x高效开发之——Genymotion篇】。