在项目之间重构代码会导致RuntimeException:不可编译代码



当我把我的Gui类从另一个项目复制到我的新项目时,我认为这很容易。不幸的是,事实并非如此。我制作了一款名为《Entwine》的游戏,它的包名为net.jibini.entwine,新项目的包名为net.jibini.pilgrim。当我试图运行重构的代码(从Entwine取出并放入Pilgrim)时,我得到了这个错误:java.lang.RuntimeException: Uncompilable source code - package net.jibini.entwine does not exist。我找不到任何链接回到原来的类,所以我不知道这是从哪里来的。

这是我的基本Gui类:

package net.jibini.pilgrim.gui;
/**
 *
 * @author zgoethel12
 */
public abstract class Gui {
    public abstract void render();
}

这是GuiPause类:

package net.jibini.pilgrim.gui;
import net.jibini.pilgrim.Main;
import org.lwjgl.opengl.Display;
/**
 *
 * @author zgoethel12
 */
import static org.lwjgl.opengl.GL11.*;
public class GuiPause extends Gui {
    GuiElementButton back, quit;
    public GuiPause() {
        controls();
    }
    @Override
    public void render() {
        glPushMatrix();
        glTranslatef(0, 0, 10);
        glBegin(GL_QUADS);
        glVertex2f(10, Display.getHeight() - 10);
        glVertex2f(440, Display.getHeight() - 10);
        glVertex2f(440, 10);
        glVertex2f(10, 10);
        glEnd();
        if (Display.wasResized()) {
            controls();
        }
        glTranslatef(0, 0, 1);
        back.render();
        quit.render();
        glPopMatrix();
    }
    public void controls() {
        back = new GuiElementButton(20, 20, 400, "Back");
        quit = new GuiElementButton(20, Display.getHeight() - (back.height + 20), 400, "Quit");
        back.onClick = new OnClickListener() {
            @Override
            public void onClick() {
                Main.instance.gui = null;
            }
        };
        quit.onClick = new OnClickListener() {
            @Override
            public void onClick() {
                Main.instance.exitGame();
                Main.instance.gui = new GuiMainMenu();
            }
        };
    }
}

最后,这是我如何在游戏中设置Gui:

if (pressedI.contains(Keyboard.KEY_ESCAPE)) {
    if (gui == null) {
        try {
            gui = new GuiMainMenu();
        } catch (ExceptionInInitializerError err) {
            System.out.println(err.getCause());
        }
    } else {
        gui = null;
    }
}

因为它发生在我试图显示的每个Gui中,我认为这可能是基Gui类或构造函数中对controls();的调用的问题。我想知道问题是什么,如何解决它,并感谢任何帮助!

问候,约翰·史密斯

解决我的问题是去"项目属性>编译"和禁用"编译保存"

相关内容

  • 没有找到相关文章

最新更新