我有一个监听器接口:
public interface AnimationListener
{
public void onAnimationStarted(Animation animation);
public void onAnimationFinished(Animation animation);
public void onAnimationCanceled(Animation animation);
}
此类保留一个列表:
public class AnimationManager
{
private List<Animation> animations;
private List<AnimationListener> animationListeners;
private List<Animation> animationsToRemove;
private float rate;
public AnimationManager(float rate)
{
setRate(rate);
}
public void addAnimationListener(AnimationListener listener)
{
animationListeners.add(listener);
}
public void removeAnimationListener(AnimationListener listener)
{
animationListeners.remove(listener);
}
...
这个类实现了接口:
public class PuzzleView extends SurfaceView implements Runnable, AnimationListener { ... private AnimationManager animationManager = null;
...
public PuzzleView(Context context)
{
...
animationManager = new AnimationManager(FRAME_RATE);
//animationManager.addAnimationListener(this); THIS CRASHES
}
当我添加动画侦听器时,它崩溃了。有什么问题?
谢谢
在 dalvik.system.NativeStart.main(Native Method) 09-21 19:15:51.453: E/AndroidRuntime(278): 引起:java.lang.NullPointerException 09-21 19:15:51.453: E/AndroidRuntime(278) ): 在 com.joshl.drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.PuzzleView.(PuzzleView.java:82 ) 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19 :15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 system.NativeStart.main(Native Method) 09-21 19:15:51.453: E/AndroidRuntime(278): 由: java.lang.NullPointerException 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.PuzzleView.(PuzzleView.java:82) 09- 21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android。 app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15: 51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 system.NativeStart.main(Native Method) 09-21 19:15:51.453: E/AndroidRuntime(278): 由: java.lang.NullPointerException 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.PuzzleView.(PuzzleView.java:82) 09- 21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android。 app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15: 51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 主要(本机方法)09-21 19:15:51.453:E/AndroidRuntime(278):由:java.lang.NullPointerException 09-21 19:15:51.453:E/AndroidRuntime(278):在 com.joshl。 drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.PuzzleView.(PuzzleView.java:82) 09-21 19:15 :51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.Instrumentation。 callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15:51.453: E/ AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 主要(本机方法)09-21 19:15:51.453:E/AndroidRuntime(278):由:java.lang.NullPointerException 09-21 19:15:51.453:E/AndroidRuntime(278):在 com.joshl。 drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.PuzzleView.(PuzzleView.java:82) 09-21 19:15 :51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.Instrumentation。 callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15:51.453: E/ AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 E/AndroidRuntime(278): 引起: java.lang.NullPointerException 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09- 21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.PuzzleView.(PuzzleView.java:82) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl .drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15 :51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19 :15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 E/AndroidRuntime(278): 引起: java.lang.NullPointerException 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09- 21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.PuzzleView.(PuzzleView.java:82) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl .drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15 :51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19 :15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.PuzzleView .(PuzzleView.java:82) 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java :2627) 09-21 19:15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.AnimationManager.addAnimationListener(AnimationManager.java:19) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.PuzzleView .(PuzzleView.java:82) 09-21 19:15:51.453: E/AndroidRuntime(278): at com.joshl.drop7.Game.onCreate(Game.java:18) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java :2627) 09-21 19:15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号。PID:278 SIG:9 在 com.joshl.drop7.PuzzleView.(PuzzleView.java:82) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.Game.onCreate(Game.java:18) 09 -21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app .ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号. PID:278 SIG:9 在 com.joshl.drop7.PuzzleView.(PuzzleView.java:82) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 com.joshl.drop7.Game.onCreate(Game.java:18) 09 -21 19:15:51.453: E/AndroidRuntime(278): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-21 19:15:51.453: E/AndroidRuntime(278): 在 android.app .ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15:53.333: I/Process(278): 发送信号. PID:278 SIG:9 E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15: 53.333:I/Process(278):发送信号。PID:278 SIG:9 E/AndroidRuntime(278): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-21 19:15:51.453: E/AndroidRuntime(278): ... 11 更多 09-21 19:15: 53.333:I/Process(278):发送信号。PID:278 SIG:9