こんにちは、コードに「奇妙な」問題があります。ログには次のように書かれています。
06-15 17:06:38.054: E/AndroidRuntime(5699): FATAL EXCEPTION: main
06-15 17:06:38.054: E/AndroidRuntime(5699): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ball_anim/com.example.ball_anim.Main}: java.lang.NullPointerException
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.app.ActivityThread.access$600(ActivityThread.java:130)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.os.Handler.dispatchMessage(Handler.java:99)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.os.Looper.loop(Looper.java:137)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.app.ActivityThread.main(ActivityThread.java:4745)
06-15 17:06:38.054: E/AndroidRuntime(5699): at java.lang.reflect.Method.invokeNative(Native Method)
06-15 17:06:38.054: E/AndroidRuntime(5699): at java.lang.reflect.Method.invoke(Method.java:511)
06-15 17:06:38.054: E/AndroidRuntime(5699): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
06-15 17:06:38.054: E/AndroidRuntime(5699): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-15 17:06:38.054: E/AndroidRuntime(5699): at dalvik.system.NativeStart.main(Native Method)
06-15 17:06:38.054: E/AndroidRuntime(5699): Caused by: java.lang.NullPointerException
06-15 17:06:38.054: E/AndroidRuntime(5699): at com.example.ball_anim.Main$MyView.<init>(Main.java:86)
06-15 17:06:38.054: E/AndroidRuntime(5699): at com.example.ball_anim.Main.onCreate(Main.java:48)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.app.Activity.performCreate(Activity.java:5008)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
06-15 17:06:38.054: E/AndroidRuntime(5699): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
06-15 17:06:38.054: E/AndroidRuntime(5699): ... 11 more
メインクラスでクラスカスタムメソッドGameTimeを呼び出すとエラーが表示されます..これは私のクラスGameTime.javaです
public class GameTime extends CountDownTimer{
public long Tempo_Trascorso;
private final long startTime = 10000;
private boolean End=false;
private long Tempo_Stop;
public GameTime(long startTime, long interval){
super(startTime, interval);
}
@Override
public void onFinish(){
System.out.println("Finish!");
End = true;
}
@Override
public void onTick(long millisUntilFinished){
System.out.println("Time Restante:" + millisUntilFinished);
Tempo_Trascorso = startTime - millisUntilFinished;
if(End == false){
Tempo_Stop=millisUntilFinished;
}
}
//Custom method #1 get the time when the game thread is stopped
public long getLastTime(){
return Tempo_Stop;
}
//Custom method #2 get the true/false when the time is end
public boolean getEndGame(){
return End;
}
}
Main.java
public class Main extends Activity {
private Bitmap Player_bmp,Player_bmp_StateLV1,Player_bmp_StateLV2,Player_bmp_StateLV3,Life_bmp,Lose_bmp;
private SurfaceHolder holder;
private AnimationThread AnimThread;
private GameTime GameTime;
private DialogBox Dbox;
private Random rnd;
private int Display_width,Display_height;
private int RandomPosx;
private int Rosso,Verde,Blu;
private Paint paint,paint_L;
private float deltaX,deltaY;
private boolean Drag = false,Collision = false,Stop = false;
private int Static_PositionX,Static_PositionY;
private List<Sfere> C_Sfere = new ArrayList<Sfere>();
private int Life,LostLife=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new MyView(this));
}
public class MyView extends SurfaceView {
public MyView(Context context) {
super(context);
// More code(too long)
}
編集: これは、サーフェス ビューとゲームのものを作成するときのメイン クラスと myview クラスの OnCreate です。コードが長すぎるため、すべてのコードを配置しないでください。詳細情報が必要な場合は教えてください;)
メイン クラスの任意の場所で、GameTime が提供するアプリケーションのカスタム メソッドを呼び出します。メインクラスがダイアログボックス専用のクラスでエラーを表示する場所(たとえば)にエラーエラーがないことを明確にしたい