G
Greenstar
Gast
Hallo,
ich wurde gestern von einem Freund angesprochen, dass er ein Problem bei einem Spiel hat. Er hat mir den Code hier geschickt:
Der Logcat sagt folgendes:
Darauf folgt dann ca. 10-20 mal:
Ich habs zwar schon seit heute Mittag probiert zu lösen, hab aber leider keine Fortschritte gemacht. Daher hoffe ich mal das ihr mir helfen könnt ^^
[/Code]
ich wurde gestern von einem Freund angesprochen, dass er ein Problem bei einem Spiel hat. Er hat mir den Code hier geschickt:
Code:
package com.KingofkingsHD.Game;
import android.app.*;
import android.content.*;
import android.graphics.*;
import android.os.*;
import android.view.*;
import android.util.*;
import android.annotation.*;
public class GameActivity extends Activity
{
public boolean isRunning = true;
public int y = 0;
public final Activity me = this;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(new GameView(this));
}
private class GameView extends SurfaceView
{
private SurfaceHolder surfaceHolder;
private Bitmap bmp;
private GameRender gameThread = new GameRender(this);
//@SuppressLint("WrongCall") - neu hinzugefügt am 14.02.14
@SuppressLint("WrongCall")public GameView(Context context)
{
[color="#FF0000"] super(context);[/color]
surfaceHolder = getHolder();
surfaceHolder.addCallback(new SurfaceHolder.Callback()
{
public void surfaceDestroyed(SurfaceHolder holder)
{
boolean retry = true;
gameThread.setRunning(false);
while(retry)
{
try
{
gameThread.join();
retry=false;
}catch(InterruptedException e)
{
}
}
}
public void surfaceCreated(SurfaceHolder holder)
{
gameThread.start();
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
// TODO Auto-generated method stub
}
});
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
}
@Override
protected void onDraw(Canvas canvas)
{
canvas.drawColor(Color.CYAN);
if(y != 10)
{
y = y + 1;
canvas.drawBitmap(bmp, 0, y, null);
}
}
}
private class GameRender extends Thread
{
GameView theView = new GameView(me);
public GameRender(GameView theView)
[color="#FF0000"] {[/color]
this.theView = theView;
}
public void setRunning(boolean run)
{
isRunning = run;
}
public void run()
{
while(isRunning)
{
if(y == 10)
{
isRunning = false;
}
Canvas theCanvas = null;
try
{
theCanvas = theView.getHolder().lockCanvas();
synchronized(theView.getHolder())
{
theView.onDraw(theCanvas);
}
}finally
{
if(theCanvas != null)
{
theView.getHolder().unlockCanvasAndPost(theCanvas);
try
{
sleep(10000);
}
catch (InterruptedException e)
{
}
}
}
}
}
}
}
Der Logcat sagt folgendes:
Code:
FATAL EXCEPTION: main
java.lang.StackOverflowError
at java.lang.IntegralToString.convertLong(IntegralToString.java:317)
at java.lang.IntegralToString.appendLong(IntegralToString.java:307)
at java.lang.StringBuilder.append(StringBuilder.java:154)
at java.lang.Thread.create(Thread.java:428)
at java.lang.Thread.<init>(Thread.java:208)
Darauf folgt dann ca. 10-20 mal:
Code:
at com.KingofkingsHD.Game.GameActivity$GameThread.<init>(GameActivity.java:88)
at com.KingofkingsHD.Game.GameActivity$GameView.<init>(GameActivity.java:33)
Ich habs zwar schon seit heute Mittag probiert zu lösen, hab aber leider keine Fortschritte gemacht. Daher hoffe ich mal das ihr mir helfen könnt ^^
[/Code]