尝试在空对象引用上调用虚拟方法 void android.widget.ImageView.startAnimation



我希望当用户单击"ans_three_btn_one"按钮时会出现一个对话框,在该对话框中,我想在旭日图像视图上实现rorate动画。此代码中唯一的问题是"sunburst.startAnimation"。如果我删除此行,则代码正常工作,但没有动画。有了这行代码,我的应用程序崩溃了。谢谢如果你帮助我。

public class GamePlay extends AppCompatActivity implements View.OnClickListener    {
Button ans_three_btn_one;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_play);
ans_three_btn_one = findViewById(R.id.ans_three_first_btn);
ans_three_btn_one.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Dialog first_prize_dialog = new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
first_prize_dialog.setContentView(R.layout.activity_first_prize);
first_prize_dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
first_prize_dialog.show();
ImageView sunbrust = findViewById(R.id.sunbrust_img);
//----Error area start ---
sunbrust.startAnimation(AnimationUtils.loadAnimation(v.getContext(),R.anim.rotate));
//----Error area end ---
}


java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.startAnimation(android.view.animation.Animation)' on a null object reference
Application terminated.

您在findViewById之前错过了first_prize_dialog

这将是

ImageView sunbrust = first_prize_dialog.findViewById(R.id.sunbrust_img);

最新更新