2016-02-29 62 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

我們在保存時重命名文件以創建一個事務。如果您遇到一致性失敗的情況,請嘗試從命令行復制它,併發布您在這種情況下獲得的潛在堆棧。 –