尝试在Codenameone中创建新表单时获取StringIndexOutOfBoundsException

时间:2015-11-29 17:47:46

标签: codenameone

我正在使用Netbeans并更新以使用最新的codenameone插件。我正在尝试按照http://www.codenameone.com/blog/gui-builder-walkthru.html上的演练教程,但在尝试使用NewGuiBuilderWizardIterator生成新表单时,我继续获取StringIndexOutOfBoundsException。以下是我看到的堆栈跟踪。任何和所有的帮助将不胜感激!

SEVERE [com.codename1.actions.OpenGuiBuilderAction]: Relative path com\mycompany\myapp\MyApp.java
SEVERE [com.codename1.actions.OpenGuiBuilderAction]: Gui file C:\Users\joshua\Documents\NetBeansProjects\TestGui1\res\guibuilder\com\mycompany\myapp\MyApp.gui
SEVERE [com.codename1.actions.OpenGuiBuilderAction]: Props C:\Users\joshua\Documents\NetBeansProjects\TestGui1\codenameone_settings.properties
SEVERE [com.codename1.actions.OpenGuiBuilderAction]: The GUI file doesn't exist!
WARNING [org.openide.filesystems.Ordering]: Found same position 100 for both Loaders/application/res/Actions/org-openide-actions-OpenAction.shadow and Loaders/application/res/Actions/sep-1.instance
WARNING [org.netbeans.modules.java.JavaTemplateAttributesProvider]: No classpath was found for folder: C:\Users\joshua\Documents\NetBeansProjects\TestGui1@b78894d2:1aed2d64
WARNING [org.openide.WizardDescriptor]
java.lang.StringIndexOutOfBoundsException: String index out of range: -4
    at java.lang.String.substring(String.java:1919)
    at com.codename1.NewGuiBuilderWizardIterator.instantiate(NewGuiBuilderWizardIterator.java:95)
    at org.openide.loaders.TemplateWizard$InstantiatingIteratorBridge.instantiate(TemplateWizard.java:1046)
    at org.openide.loaders.TemplateWizard.handleInstantiate(TemplateWizard.java:605)
    at org.openide.loaders.TemplateWizard.instantiateNewObjects(TemplateWizard.java:439)
    at org.openide.loaders.TemplateWizardIterImpl.instantiate(TemplateWizardIterImpl.java:248)
    at org.openide.loaders.TemplateWizardIteratorWrapper.instantiate(TemplateWizardIteratorWrapper.java:160)
    at org.openide.WizardDescriptor.callInstantiateOpen(WizardDescriptor.java:1629)
    at org.openide.WizardDescriptor.callInstantiate(WizardDescriptor.java:1570)
    at org.openide.WizardDescriptor.access$2300(WizardDescriptor.java:92)
[catch] at org.openide.WizardDescriptor$Listener$2$1.run(WizardDescriptor.java:2257)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1423)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)

1 个答案:

答案 0 :(得分:0)

您需要在执行此操作时选择一个包而不是顶级项目,因为代码无法识别该情况,也不知道GUI文件的放置位置。

请注意,由于XML GUI文件是在后台创建的,因此事后重构将无法正常工作,因此这不是我们通常应该解决的问题。