我有一个简单的应用程序,但它在我所针对的任何Android设备或模拟器上崩溃。它在iOS和WEB上运行正常。使用cocos2djs 3.7.1,NDK r10e。这是一个堆栈跟踪,我无法弄清楚出了什么问题:
D/cocos2d-x debug info( 3052):
D/cocos2d-x debug info( 3052): {
D/cocos2d-x debug info( 3052): gl.supports_vertex_array_object: false
D/cocos2d-x debug info( 3052): gl.supports_BGRA8888: false
D/cocos2d-x debug info( 3052): gl.supports_ATITC: false
D/cocos2d-x debug info( 3052): gl.supports_S3TC: false
D/cocos2d-x debug info( 3052): cocos2d.x.version: cocos2d-x-3.7
D/cocos2d-x debug info( 3052): gl.supports_discard_framebuffer: false
D/cocos2d-x debug info( 3052): cocos2d.x.compiled_with_profiler: false
D/cocos2d-x debug info( 3052): gl.supports_PVRTC: false
D/cocos2d-x debug info( 3052): cocos2d.x.build_type: DEBUG
D/cocos2d-x debug info( 3052): gl.renderer: PowerVR SGX 544MP
D/cocos2d-x debug info( 3052): gl.supports_ETC1: true
D/cocos2d-x debug info( 3052): cocos2d.x.compiled_with_gl_state_cache: true
D/cocos2d-x debug info( 3052): gl.version: 2.1 INTEL-10.6.31
D/cocos2d-x debug info( 3052): gl.supports_NPOT: true
D/cocos2d-x debug info( 3052): gl.max_texture_units: 16
D/cocos2d-x debug info( 3052): gl.vendor: Imagination Technologies
D/cocos2d-x debug info( 3052): gl.max_texture_size: 16384
D/cocos2d-x debug info( 3052): }
D/cocos2d-x debug info( 3052):
D/cocos2d-x debug info( 3052):
F/libc ( 3052): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=128), thread 3067 (Thread-153)
I/ActivityManager( 546): Displayed com.mkdigitalsolutions.puzzler/org.cocos2dx.javascript.AppActivity: +183ms (total +6s600ms)
I/DEBUG ( 154): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 154): Build fingerprint: 'andy/andy/andy:4.2.2/JDQ39E/eng.developer.20150116.074207:userdebug/test-keys'
I/DEBUG ( 154): Revision: '0'
I/DEBUG ( 154): pid: 3052, tid: 3067, name: Thread-153 >>> com.mkdigitalsolutions.puzzler <<<
I/DEBUG ( 154): signal 11 (SIGSEGV), code 128 (?), fault addr 00000000
D/SettingsProvider( 546): User 0 external modification to /data/data/com.android.providers.settings/databases/settings.db; event=8
D/SettingsProvider( 546): User 0 updating our caches for /data/data/com.android.providers.settings/databases/settings.db
I/DEBUG ( 154): eax b7aa4898 ebx 98c13934 ecx b7aa4898 edx 961e89f0
I/DEBUG ( 154): esi 961ecf34 edi 961e8b94
I/DEBUG ( 154): xcs 00000073 xds 0000007b xes 0000007b xfs 00000000 xss 0000007b
I/DEBUG ( 154): eip 97ffd06f ebp 961e88e8 esp 961e8260 flags 00010282
I/DEBUG ( 154):
I/DEBUG ( 154): backtrace:
I/DEBUG ( 154): #00 pc 01bb606f /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (_ZN7cocos2d8MathUtil14multiplyMatrixEPKDv4_fS3_PS1_+105)
I/DEBUG ( 154): #01 pc 01a67083 /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Mat4::multiply(cocos2d::Mat4 const&, cocos2d::Mat4 const&, cocos2d::Mat4*)+163)
I/DEBUG ( 154): #02 pc 01a66fd8 /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Mat4::multiply(cocos2d::Mat4 const&)+44)
I/DEBUG ( 154): #03 pc 01a8755d /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Mat4::operator*=(cocos2d::Mat4 const&)+37)
I/DEBUG ( 154): #04 pc 01a897ea /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Director::multiplyMatrix(cocos2d::MATRIX_STACK_TYPE, cocos2d::Mat4 const&)+98)
I/DEBUG ( 154): #05 pc 01a89c9c /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Director::setProjection(cocos2d::Director::Projection)+512)
I/DEBUG ( 154): #06 pc 01a889ce /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Director::setGLDefaultValues()+232)
I/DEBUG ( 154): #07 pc 01a88f55 /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Director::setOpenGLView(cocos2d::GLView*)+419)
I/DEBUG ( 154): #08 pc 0096d0b0 /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit+211)
I/DEBUG ( 154): #09 pc 0001ae60 /system/lib/libdvm.so (dvmPlatformInvoke+80)
I/DEBUG ( 154): #10 pc 0006f623 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+723)
I/DEBUG ( 154):
I/DEBUG ( 154): stack:
I/DEBUG ( 154): 961e8220 00000000
I/DEBUG ( 154): 961e8224 00000000
I/DEBUG ( 154): 961e8228 00000000
I/DEBUG ( 154): 961e822c 00000000
I/DEBUG ( 154): 961e8230 00000000
I/DEBUG ( 154): 961e8234 00000000
I/DEBUG ( 154): 961e8238 00000000
I/DEBUG ( 154): 961e823c 00000000
I/DEBUG ( 154): 961e8240 00000000
I/DEBUG ( 154): 961e8244 00000000
I/DEBUG ( 154): 961e8248 00000000
I/DEBUG ( 154): 961e824c 00000000
I/DEBUG ( 154): 961e8250 00000000
I/DEBUG ( 154): 961e8254 00000000
I/DEBUG ( 154): 961e8258 00000000
I/DEBUG ( 154): 961e825c 00000000
I/DEBUG ( 154): #00 961e8260 402ab600
I/DEBUG ( 154): 961e8264 402ab600
I/DEBUG ( 154): 961e8268 402ab600
I/DEBUG ( 154): 961e826c 402ab600
I/DEBUG ( 154): 961e8270 00000000
I/DEBUG ( 154): 961e8274 00000000
I/DEBUG ( 154): 961e8278 00000000
I/DEBUG ( 154): 961e827c 00000000
I/DEBUG ( 154): 961e8280 00000000
I/DEBUG ( 154): 961e8284 00000000
I/DEBUG ( 154): 961e8288 00000000
I/DEBUG ( 154): 961e828c 00000000
I/DEBUG ( 154): 961e8290 00000000
I/DEBUG ( 154): 961e8294 00000000
I/DEBUG ( 154): 961e8298 00000000
I/DEBUG ( 154): 961e829c 00000000
I/DEBUG ( 154): ........ ........
I/DEBUG ( 154): #01 961e88f0 b7aa4898 [heap]
I/DEBUG ( 154): 961e88f4 961e89f0 [stack:3067]
I/DEBUG ( 154): 961e88f8 b7aa4898 [heap]
I/DEBUG ( 154): 961e88fc 00000000
I/DEBUG ( 154): 961e8900 00000001
I/DEBUG ( 154): 961e8904 00000000
I/DEBUG ( 154): 961e8908 40000000
I/DEBUG ( 154): 961e890c b7aa3e70 [heap]
I/DEBUG ( 154): 961e8910 00000000
I/DEBUG ( 154): 961e8914 98c13934 /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so
I/DEBUG ( 154): 961e8918 961e8938 [stack:3067]
I/DEBUG ( 154): 961e891c 97eadfd8 /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Mat4::multiply(cocos2d::Mat4 const&)+44)
I/DEBUG ( 154): #02 961e8920 b7aa4898 [heap]
I/DEBUG ( 154): 961e8924 961e89f0 [stack:3067]
I/DEBUG ( 154): 961e8928 b7aa4898 [heap]
I/DEBUG ( 154): 961e892c 0453e10c
I/DEBUG ( 154): 961e8930 961ecf34
I/DEBUG ( 154): 961e8934 98c13934 /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so
I/DEBUG ( 154): 961e8938 961e8958 [stack:3067]
I/DEBUG ( 154): 961e893c 97ece55d /data/app-lib/com.mkdigitalsolutions.puzzler-1/libcocos2djs.so (cocos2d::Mat4::operator*=(cocos2d::Mat4 const&)+37)
我的main.js代码看起来像这样:
cc.game.onStart = function(){
if(!cc.sys.isNative && document.getElementById("cocosLoading")) //If referenced loading.js, please remove it
document.body.removeChild(document.getElementById("cocosLoading"));
LibraryIntegration.iniAnalytics();
cc.view.adjustViewPort(true);
if (cc.sys.isNative)
{
var searchPaths = jsb.fileUtils.getSearchPaths();
// ipad retina
if (cc.view.getFrameSize().width >= 1536 && cc.view.getFrameSize().height >= 1536)
{
cc.log("large");
searchPaths.push("res/resolutions/large");
searchPaths.push("src");
}
else if (cc.view.getFrameSize().width >= 640 && cc.view.getFrameSize().height >= 640) //iphone hd or above and android high res screens
{
cc.log("Medium");
searchPaths.push("res/resolutions/medium");
searchPaths.push("src");
}
else
{
cc.log("small");
searchPaths.push("res/resolutions/small");
searchPaths.push("src");
}
jsb.fileUtils.setSearchPaths(searchPaths);
}
else
{
cc.view.resizeWithBrowserSize(true);
}
cc.view.setDesignResolutionSize(640, 960, cc.ResolutionPolicy.FIXED_WIDTH);
cc.eventManager.addCustomListener(cc.game.EVENT_HIDE, function(){
//onEnterBackground handler
cc.log("Did enter bg");
var difference = differenceBetweenDates(0);
recordTotalTimePlayed(difference.diff);
recordSessionTimePlayed(difference.diff);
});
cc.eventManager.addCustomListener(cc.game.EVENT_SHOW, function(){
//onEnterForeground handler
cc.log("Did enter fg");
recordTimeForSession();
});
recordTimeForSession();
cc.LoaderScene.preload(main_menu_resources, function () {
cc.director.runScene(new MainMenuScene());
}, this);
setStarsForLevels();
};
cc.game.run();
如果我评论mainMenuScene加载线 - 它运行正常,黑屏。我的主要场景代码:
var MainMenuScene = cc.Scene.extend({
onEnter:function () {
this._super();
var mainMenuUI = ccs.load(mainMenuRes.MainMenuUI, "res/");
//mainMenuUI.node.ignoreAnchorPointForPosition(false);
mainMenuUI.node.setAnchorPoint(0.5, 0.5);
mainMenuUI.node.setPosition(cc.director.getVisibleOrigin().x + cc.director.getVisibleSize().width * 0.5, cc.director.getVisibleOrigin().y + cc.director.getVisibleSize().height * 0.5);
this.addChild(mainMenuUI.node);
var play = mainMenuUI.node.getChildByName("Play");
cc.assert(cc.sys.isObjectValid(play), "Play button not valid");
play.addTouchEventListener(function (sender, type) {
if(type != ccui.Widget.TOUCH_ENDED) return;
Redirect.goToEpochSelection();
}, this);
var stats = mainMenuUI.node.getChildByName("stats");
cc.assert(cc.sys.isObjectValid(stats), "Stats button not valid");
stats.addTouchEventListener(function (sender, type) {
if(type != ccui.Widget.TOUCH_ENDED) return;
Redirect.goToStats();
}, this);
var color = mainMenuUI.node.getChildByName("Color");
cc.assert(cc.sys.isObjectValid(color), "Color not valid");
color.setContentSize(5000, 5000);
}
});
任何帮助将不胜感激。
干杯!
更新
所以我认为我找到了原因而不是解决方案。我正在构建3个架构的android - APP_ABI:= armeabi-v7a armeabi x86,如果我只为armeabi构建 - 崩溃已经消失但它只适用于那些架构模拟器或设备......