2016-02-29 59 views
1

为什么在运行或打开主题文件时,代码名称1中出现错误。请同样提供解决方案。损坏的主题文件无法识别的幻数:0 [CodenameOne]

java.io.IOException: Corrupt theme file unrecognized magic number: 0 
com.svastikagames.gkquiz.MyApplication.start() Error java.lang.NullPointerException 
at com.codename1.ui.util.Resources.openFileImpl(Resources.java:332) 
at com.codename1.ui.util.Resources.openFile(Resources.java:261) 
at com.codename1.ui.util.Resources.<init>(Resources.java:181) 
at com.codename1.ui.util.Resources.open(Resources.java:729) 
at com.codename1.ui.util.Resources.openLayered(Resources.java:694) 
at com.codename1.ui.util.Resources.openLayered(Resources.java:658) 
at generated.StateMachineBase.startApp(StateMachineBase.java:59) 
at generated.StateMachineBase.<init>(StateMachineBase.java:31) 
at generated.StateMachineBase.<init>(StateMachineBase.java:124) 
at userclasses.StateMachine.<init>(StateMachine.java:236) 
at com.svastikagames.gkquiz.MyApplication.start(MyApplication.java:25) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.codename1.impl.javase.Executor$1$1.run(Executor.java:100) 
at com.codename1.ui.Display.processSerialCalls(Display.java:1149) 
at com.codename1.ui.Display.mainEDTLoop(Display.java:966) 
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120) 
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176) 

回答

0

通常这个错误是指文件长度为0,并且由于原因不明而在某个时间点被损坏。

如果文件长度为0,除非您使用XML团队模式,否则我们无法帮助恢复其内容。

如果您正在使用它,那么只需从命令行启动设计器工具,然后编辑它应该实际工作的主题,因为它从res目录下的XML加载资源,而不是res文件本身。如果在保存期间打印出错误,这些可能会帮助您缩小问题范围,并且还可以将这些错误提交给我们。

为了启动命令行的设计师在Unix/Linux/Mac上使用此:

java -jar ~/.codenameone/designer_1.jar 

和Windows:

java -jar MY_USER_DIRECTORY\.codenameone\designer_1.jar 
+0

我更换theme.rec文件与我的备份文件和需要再次添加更多的组件。请让我知道使用xml团队模式的方式,如果再次发生同样的情况,那么可以保护这种类型的损害。 –

+0

保存更改的方法可能无法正确完成。我注意到,当我们关闭设计器时突然(由于挂起或什么东西),当文件可能在保存过程中出现此问题时。 –

+0

我们在保存时重命名文件以创建一个事务。如果您遇到一致性失败的情况,请尝试从命令行复制它,并发布您在这种情况下获得的潜在堆栈。 –