2015-07-13 79 views
0

因此,我正在关注此guide,并在我想运行新键入的代码时遇到问题。我在logcat中得到了错误ClassNotFoundClassNotFoundException(未知来源)

load: class guldbechnielsensolutions.MainActivity.class not found. 
    java.lang.ClassNotFoundException: guldbechnielsensolutions.MainActivity.class 
    at sun.applet.AppletClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.applet.AppletClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.applet.AppletClassLoader.loadCode(Unknown Source) 
    at sun.applet.AppletPanel.createApplet(Unknown Source) 
    at sun.applet.AppletPanel.runLoader(Unknown Source) 
    at sun.applet.AppletPanel.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

每当我看到其他错误,我总是得到一个行号的故障而不是在这里 - 这是为什么? (边问题)

我只改变自去年成功运行两班,所以我将只发布这两个:

MainActivity:

package guldbechnielsensolutions; 

import guldbechnielsensolutions.framework.Animation; 
import java.applet.Applet; 
import java.awt.Color; 
import java.awt.Frame; 
import java.awt.Graphics; 
import java.awt.Image; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 
import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 
import java.net.URL; 
import java.util.ArrayList; 

public class MainActivity extends Applet implements Runnable, KeyListener { 
    private Sprite robot; 
    private Heliboy hb, hb2; 
    private Image image, currentSprite, character, character2, character3, 
      characterDown, characterJumped, background, heliboy, heliboy2, 
      heliboy3, heliboy4, heliboy5; 

    public static Image tilegrassTop, tilegrassBot, tilegrassLeft, tilegrassRight, tiledirt; 

    private Graphics second; 
    private URL base; 
    private static Background bg1, bg2; 
    private Animation anim, hanim; 

    private ArrayList<Tile> tilearray = new ArrayList<Tile>(); 

    @Override 
    public void init() { 

     setSize(800, 480); 
     setBackground(Color.BLACK); 
     setFocusable(true); 
     addKeyListener(this); 
     Frame frame = (Frame) this.getParent().getParent(); 
     frame.setTitle("Get Me Out! Alpha"); 
     try { 
      base = getDocumentBase(); 
     } catch (Exception e) { 
      // TODO: handle exception 
     } 

     // Image Setups 
     character = getImage(base, "data/character.png"); 
     character2 = getImage(base, "data/character2.png"); 
     character3 = getImage(base, "data/character3.png"); 

     characterDown = getImage(base, "data/down.png"); 
     characterJumped = getImage(base, "data/jumped.png"); 

     heliboy = getImage(base, "data/heliboy.png"); 
     heliboy2 = getImage(base, "data/heliboy2.png"); 
     heliboy3 = getImage(base, "data/heliboy3.png"); 
     heliboy4 = getImage(base, "data/heliboy4.png"); 
     heliboy5 = getImage(base, "data/heliboy5.png"); 

     background = getImage(base, "data/background.png"); 

     tiledirt = getImage(base, "data/tiledirt.png"); 
     tilegrassTop = getImage(base, "data/tilegrasstop.png"); 
     tilegrassBot = getImage(base, "data/tilegrassbot.png"); 
     tilegrassLeft = getImage(base, "data/tilegrassleft.png"); 
     tilegrassRight = getImage(base, "data/tilegrassright.png"); 


     anim = new Animation(); 
     anim.addFrame(character, 1250); 
     anim.addFrame(character2, 50); 
     anim.addFrame(character3, 50); 
     anim.addFrame(character2, 50); 

     hanim = new Animation(); 
     hanim.addFrame(heliboy, 100); 
     hanim.addFrame(heliboy2, 100); 
     hanim.addFrame(heliboy3, 100); 
     hanim.addFrame(heliboy4, 100); 
     hanim.addFrame(heliboy5, 100); 
     hanim.addFrame(heliboy4, 100); 
     hanim.addFrame(heliboy3, 100); 
     hanim.addFrame(heliboy2, 100); 

     currentSprite = anim.getImage(); 
    } 

    @Override 
    public void start() { 
     bg1 = new Background(0, 0); 
     bg2 = new Background(2160, 0); 

     // Initialize Tiles 
     try { 
      loadMap("data/map1.txt"); 
     } catch (IOException e) { 
      System.out.println("LOL"); 
      e.printStackTrace(); 
      System.out.println("LOL"); 
     } 

     hb = new Heliboy(340, 360); 
     hb2 = new Heliboy(700, 360); 
     robot = new Sprite(); 

     Thread thread = new Thread(this); 
     thread.start(); 
    } 

    private void loadMap(String filename) throws IOException { 
     ArrayList lines = new ArrayList(); 
     int width = 0; 
     int height = 0; 

     BufferedReader reader = new BufferedReader(new FileReader(filename)); 
     while (true) { 
      String line = reader.readLine(); 
      // no more lines to read 
      if (line == null) { 
       reader.close(); 
       break; 
      } 

      if (!line.startsWith("!")) { 
       lines.add(line); 
       width = Math.max(width, line.length()); 

      } 
     } 
     height = lines.size(); 

     for (int j = 0; j < 12; j++) { 
      String line = (String) lines.get(j); 
      for (int i = 0; i < width; i++) { 

       if (i < line.length()) { 
        char ch = line.charAt(i); 
        Tile t = new Tile(i, j, Character.getNumericValue(ch)); 
        tilearray.add(t); 
       } 

      } 
     } 

    } 

    @Override 
    public void stop() { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void destroy() { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void run() { 
     while (true) { 
      robot.update(); 
      if (robot.isJumped()) { 
       currentSprite = characterJumped; 
      } else if (robot.isJumped() == false && robot.isDucked() == false) { 
       currentSprite = anim.getImage(); 
      } 

      ArrayList projectiles = robot.getProjectiles(); 
      for (int i = 0; i < projectiles.size(); i++) { 
       Projectile p = (Projectile) projectiles.get(i); 
       if (p.isVisible() == true) { 
        p.update(); 
       } else { 
        projectiles.remove(i); 
       } 
      } 

      updateTiles(); 
      hb.update(); 
      hb2.update(); 
      bg1.update(); 
      bg2.update(); 
      animate(); 
      repaint(); 
      try { 
       Thread.sleep(17); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    public void animate() { 
     anim.update(10); 
     hanim.update(50); 
    } 

    @Override 
    public void update(Graphics g) { 
     if (image == null) { 
      image = createImage(this.getWidth(), this.getHeight()); 
      second = image.getGraphics(); 
     } 

     second.setColor(getBackground()); 
     second.fillRect(0, 0, getWidth(), getHeight()); 
     second.setColor(getForeground()); 
     paint(second); 

     g.drawImage(image, 0, 0, this); 

    } 

    @Override 
    public void paint(Graphics g) { 
     g.drawImage(background, bg1.getBgX(), bg1.getBgY(), this); 
     g.drawImage(background, bg2.getBgX(), bg2.getBgY(), this); 
     paintTiles(g); 

     ArrayList projectiles = robot.getProjectiles(); 
     for (int i = 0; i < projectiles.size(); i++) { 
      Projectile p = (Projectile) projectiles.get(i); 
      g.setColor(Color.YELLOW); 
      g.fillRect(p.getX(), p.getY(), 10, 5); 
     } 

     g.drawImage(currentSprite, robot.getCenterX() - 61, 
       robot.getCenterY() - 63, this); 
     g.drawImage(hanim.getImage(), hb.getCenterX() - 48, 
       hb.getCenterY() - 48, this); 
     g.drawImage(hanim.getImage(), hb2.getCenterX() - 48, 
       hb2.getCenterY() - 48, this); 
    } 

    private void updateTiles() { 

     for (int i = 0; i < tilearray.size(); i++) { 
      Tile t = (Tile) tilearray.get(i); 
      t.update(); 
     } 

    } 

    private void paintTiles(Graphics g) { 
     for (int i = 0; i < tilearray.size(); i++) { 
      Tile t = (Tile) tilearray.get(i); 
      g.drawImage(t.getTileImage(), t.getTileX(), t.getTileY(), this); 
     } 
    } 

    @Override 
    public void keyPressed(KeyEvent e) { 

     switch (e.getKeyCode()) { 
     case KeyEvent.VK_UP: 
      System.out.println("Move up"); 
      break; 

     case KeyEvent.VK_DOWN: 
      currentSprite = characterDown; 
      if (robot.isJumped() == false) { 
       robot.setDucked(true); 
       robot.setSpeedX(0); 
      } 
      break; 

     case KeyEvent.VK_LEFT: 
      robot.moveLeft(); 
      robot.setMovingLeft(true); 
      break; 

     case KeyEvent.VK_RIGHT: 
      robot.moveRight(); 
      robot.setMovingRight(true); 
      break; 

     case KeyEvent.VK_SPACE: 
      robot.jump(); 
      break; 

     case KeyEvent.VK_CONTROL: 
      if (robot.isDucked() == false && robot.isJumped() == false) { 
       robot.shoot(); 
      } 
      break; 

     } 

    } 

    @Override 
    public void keyReleased(KeyEvent e) { 
     switch (e.getKeyCode()) { 
     case KeyEvent.VK_UP: 
      System.out.println("Stop moving up"); 
      break; 

     case KeyEvent.VK_DOWN: 
      currentSprite = anim.getImage(); 
      robot.setDucked(false); 
      break; 

     case KeyEvent.VK_LEFT: 
      robot.stopLeft(); 
      break; 

     case KeyEvent.VK_RIGHT: 
      robot.stopRight(); 
      break; 

     case KeyEvent.VK_SPACE: 
      break; 

     } 

    } 

    @Override 
    public void keyTyped(KeyEvent e) { 
     // TODO Auto-generated method stub 

    } 

    public static Background getBg1() { 
     return bg1; 
    } 

    public static Background getBg2() { 
     return bg2; 
    } 

} 

瓷砖:

package guldbechnielsensolutions; 

import java.awt.Image; 

public class Tile { 

    private int tileX, tileY, speedX, type; 
    public Image tileImage; 

    private Background bg = MainActivity.getBg1(); 

    public Tile(int x, int y, int typeInt) { 
     tileX = x * 40; 
     tileY = y * 40; 

     type = typeInt; 

     if (type == 5) { 
      tileImage = MainActivity.tiledirt; 
     } else if (type == 8) { 
      tileImage = MainActivity.tilegrassTop; 
     } else if (type == 4) { 
      tileImage = MainActivity.tilegrassLeft; 
     } else if (type == 6) { 
      tileImage = MainActivity.tilegrassRight; 
     } else if (type == 2) { 
      tileImage = MainActivity.tilegrassBot; 
     } 

    } 

    public void update() { 
     // TODO Auto-generated method stub 
     if (type == 1) { 
      if (bg.getSpeedX() == 0){ 
       speedX = -1; 
      }else{ 
       speedX = -2; 
      } 

     } else { 
      speedX = bg.getSpeedX()*5; 
     } 

     tileX += speedX; 
    } 

    public int getTileX() { 
     return tileX; 
    } 

    public void setTileX(int tileX) { 
     this.tileX = tileX; 
    } 

    public int getTileY() { 
     return tileY; 
    } 

    public void setTileY(int tileY) { 
     this.tileY = tileY; 
    } 

    public Image getTileImage() { 
     return tileImage; 
    } 

    public void setTileImage(Image tileImage) { 
     this.tileImage = tileImage; 
    } 

} 

为什么我找不到一个班级?我不是instanciating任何新类(除了之前工作正常的精灵除外)?


编辑:

改变这些行后:

 if (type == 5) { 
      tileImage = MainActivity.tiledirt; 
     } else if (type == 8) { 
      tileImage = MainActivity.tilegrassTop; 
     } else if (type == 4) { 
      tileImage = MainActivity.tilegrassLeft; 
     } else if (type == 6) { 
      tileImage = MainActivity.tilegrassRight; 
     } else if (type == 2) { 
      tileImage = MainActivity.tilegrassBot; 
     } 

在Tile.java 而这些MainActivity.java:

tiledirt = getImage(base, "data/tiledirt.png"); 
tilegrassTop = getImage(base, "data/tilegrasstop.png"); 
tilegrassBot = getImage(base, "data/tilegrassbot.png"); 
tilegrassLeft = getImage(base, "data/tilegrassleft.png"); 
tilegrassRight = getImage(base, "data/tilegrassright.png"); 

的错误来了。现在,如果我使用CTRL + Z返回到“可运行”代码,它将引发相同的错误。


EDIT2:

当我运行它那种作品又抛出了错误,并生成该窗口中的代码: enter image description here

凡在它是由一个背景和精灵居住。

+0

你是如何构建应用程序的?你有没有添加必要的依赖关系? – kuhajeyan

+0

我相信是这样的,我运行代码并且工作得很好,改变了几行和繁荣,这个错误出现了。生病编辑我改变的线。 – Evilunclebill

+0

似乎你的MainActivitity类可能有编译错误。你是否可以在更改之后编译MainActivity – kuhajeyan

回答

0

所以,当试图调试时,我发现了一个答案,我可以尝试。我所做的:

右键单击项目>构建路径>配置构建路径

在那里我可以添加和删除这是造成问题的文件夹。现在我的代码完美运行。

相关问题