Приложение неожиданно остановилось. Пожалуйста, попробуйте еще раз - PullRequest
0 голосов
/ 23 апреля 2011

Приложение будет работать нормально, если я не добавлю следующий код.

public class TFView extends View{
  private Paint p;
  private ArrayList<Orb> O1;

  /** Called when the activity is first created. */
  public TFView (Context context){
    super(context);
    O1=new ArrayList<Orb>();
    p = new Paint();
    int Orby=0; 
    for(int j=0; j<3; j++){
      int Orbx= 0;

      for(int i=0; i<4; i++)
      {
        O1.add(new Orb(Orbx,Orby,true));
        Orbx+= 40;
      }
      Orby+= 40;
    }
  }


  @Override
  protected void onDraw(Canvas canvas) {

    for(Orb t:O1){
      canvas.drawOval(t.drawOrb(), p);

    }
    p.setColor(Color.BLUE);
    canvas.drawText(String.valueOf(main.getx()), 50, 50, p);
    canvas.drawText(String.valueOf(main.gety()), 50, 80, p);
    canvas.drawText(String.valueOf(O1.size()), 50, 110, p);

    try {  
      Thread.sleep(30);  
    } catch (InterruptedException e) { }

    invalidate(); 
  }
}

Итак, я считаю, что моя проблема как-то связана с тем, что андроид не принимает мой Arraylist. Я запустил очень похожий код для этого на своем компьютере, но что-то в Android, похоже, не хочет его принимать. Вот мой класс Orb, который используется в моем Arraylist.

import android.graphics.RectF;

public class Orb {
  static int orbx;
  static int orby;
  public int size;
  static RectF button;

  boolean display;
  public Orb(){
    orbx=0;
    orby=0;
    display=false;
  }
  public Orb(int x, int y, boolean d){
    orbx=x;
    orby=y;
    display=true;

  }
  public RectF drawOrb(){
    button.set(orbx, orby,orbx+30, orby+30);
    return button;
  }
}

Итак, почему андроид не принимает мои рисунки Arraylist? Спасибо за помощь.

Редактировать: Итак, я исправил проблему с нулевой кнопкой со следующим кодом public RectF drawOrb () {

button.set(orbx, orby,orbx+30, orby+30);
if(button!=null)
return button;
else
    return b;
}

Теперь я получаю несколько исключений нулевого указателя, которые выглядят следующим образом

[2011-04-23 22:31:25 - ddms]null
java.lang.NullPointerException
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:574)
    at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
    at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
    at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

Еще раз спасибо

1 Ответ

1 голос
/ 23 апреля 2011
E/AndroidRuntime(  312): java.lang.NullPointerException
E/AndroidRuntime(  312):        at com.djrobotfreak.Think_Fast.Orb.drawOrb(Orb.java:26)

У вас есть NullPointerException в строке 26 из Orb.java. Судя по вашим спискам, это может быть:

button.set(orbx, orby,orbx+30, orby+30);

Если это так, button равно нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...