cocos2dx app产品版本更新启动崩溃问题及解决
cocos2dx app产品版本更新启动崩溃
具体log如下:
W/dalvikvm( 7931): threadid=12: thread exiting with uncaught exception (group=0x42048930)E/AndroidRuntime( 7931): FATAL EXCEPTION: GLThread 12293E/AndroidRuntime( 7931): java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.StringE/AndroidRuntime( 7931): at android.app.SharedPreferencesImpl.getString(SharedPreferencesImpl.java:224)E/AndroidRuntime( 7931): at org.cocos2dx.lib.Cocos2dxHelper.getStringForKey(Cocos2dxHelper.java:302)E/AndroidRuntime( 7931): at org.cocos2dx.lib.Cocos2dxRenderer.nativeRender(Native Method)E/AndroidRuntime( 7931): at org.cocos2dx.lib.Cocos2dxRenderer.onDrawFrame(Cocos2dxRenderer.java:94)E/AndroidRuntime( 7931): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1524)E/AndroidRuntime( 7931): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1248)
int announcement_id = UserDefaultUtil::getIntForKey(KEY_ANNOUNCEMENT_ID); if (announcement_id != announcement.id) { setAnnouncementVisible(true); UserDefaultUtil::saveIntToXml(KEY_ANNOUNCEMENT_ID, announcement.id); }
-- getStringForKey此处有错误,强行取出一个String(但是文件保存为int类型) if CCUserDefault:sharedUserDefault():getStringForKey(KEY_ANNOUNCEMENT_ID) ~= announcement_content["id"] then CCUserDefault:sharedUserDefault():setStringForKey(KEY_ANNOUNCEMENT_ID, announcement_content["id"]) setAnnouncementVisible(pLayer, true) end
if announcement_content["id"] then announcement_id = tonumber(announcement_content["id"]) + 1 if CCUserDefault:sharedUserDefault():getIntForKey(KEY_ANNOUNCEMENT_ID) ~= announcement_id then CCUserDefault:sharedUserDefault():setIntForKey(KEY_ANNOUNCEMENT_ID, announcement_id) setAnnouncementVisible(pLayer, true) end end