편집 : LogCat을 살펴 봤는데 com.example.playground를 부 풀릴 수 없다고했습니다. 나는 com.game.myapp.Playground가 필요하다는 것을 깨달았다. 그것을 바꾼 후에 효과가있었습니다.Android에서 게임 중력 생성 (계속)?
최근 안드로이드 앱 (link)에서 중력이 작동하지 않는 이유는 최근 물었습니다. 아직 문제가 있습니다. 보기를 클래스 "놀이터"로 변경했지만 지금은 강제로 닫습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
package com.game.myapp;
import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
public class InGame extends Activity{
Playground v;
private int radius;
private int xPosition;
private int yPosition;
private Paint paint;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Rewrite this, it sucks. Seriously.
super.onCreate(savedInstanceState);
v = new Playground(this);
setContentView(v);
}
public InGame(int x, int y, int radius, int color)
{
this.xPosition = x; this.yPosition = y; this.radius = radius;
paint = new Paint(color);
}
void moveBall(int x, int y){
xPosition = x; yPosition =y;
}
void onDraw(Canvas canvas){
canvas.drawCircle(xPosition, yPosition, radius, paint);
}
}
놀이터 클래스 :
package com.game.myapp;
import android.content.Context;
import android.graphics.Canvas;
import android.view.View;
public class Playground extends View{
public static InGame ball;
public Playground(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
public void onDraw(Canvas canvas)
{
super.onDraw(canvas);
if (ball != null){
ball.onDraw(canvas);
}
}
}
을 heres 로그 캣 :
11-04 16:36:33.945: D/dalvikvm(13177): newInstance failed: no <init>()
11-04 16:36:33.949: D/AndroidRuntime(13177): Shutting down VM
11-04 16:36:33.949: W/dalvikvm(13177): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
11-04 16:36:33.953: E/AndroidRuntime(13177): FATAL EXCEPTION: main
11-04 16:36:33.953: E/AndroidRuntime(13177): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.game.myapp/com.game.myapp.InGame}: java.lang.InstantiationException: com.game.myapp.InGame
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.os.Handler.dispatchMessage(Handler.java:99)
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.os.Looper.loop(Looper.java:130)
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.app.ActivityThread.main(ActivityThread.java:3687)
11-04 16:36:33.953: E/AndroidRuntime(13177): at java.lang.reflect.Method.invokeNative(Native Method)
11-04 16:36:33.953: E/AndroidRuntime(13177): at java.lang.reflect.Method.invoke(Method.java:507)
11-04 16:36:33.953: E/AndroidRuntime(13177): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
11-04 16:36:33.953: E/AndroidRuntime(13177): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
11-04 16:36:33.953: E/AndroidRuntime(13177): at dalvik.system.NativeStart.main(Native Method)
11-04 16:36:33.953: E/AndroidRuntime(13177): Caused by: java.lang.InstantiationException: com.game.myapp.InGame
11-04 16:36:33.953: E/AndroidRuntime(13177): at java.lang.Class.newInstanceImpl(Native Method)
11-04 16:36:33.953: E/AndroidRuntime(13177): at java.lang.Class.newInstance(Class.java:1409)
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
11-04 16:36:33.953: E/AndroidRuntime(13177): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565)
11-04 16:36:33.953: E/AndroidRuntime(13177): ... 11 more
안녕하세요 요르단. 왜 Ball 클래스에 모든 코드를 넣으려고 했습니까? 당신은 공으로 활동을 사용해서는 안됩니다! 너도 알다시피, 내가 너에게 이것을 쓰고 그것을 게시하는 것이 더 빠를 것이다! 제발, 제발 내 충고를 받아 들여. 클래스와 객체 지향 프로그래밍에 대해 알아보고 Android 태클을 시도하십시오. 당신은 OOP의 기초를 이해하지 못한다면, 성공하지 못할 것이며, 과정에서 많은 시간을 잃을 것입니다. – Simon