我正在尝试开发一个Android应用程序android studio 3.2。应用崩溃时imageView.setImageBitmap(bitmap);
停止了该应用程序。这是我获取可绘制图像的代码
public class MainActivity extends AppCompatActivity {
Button button;
ImageView imageView;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
this.imageView=(ImageView)findViewById(R.id.image_view);
textView=(TextView)findViewById(R.id.text_view);
button=(Button)findViewById(R.id.button_click);
try {
this.imageView.setImageResource(R.drawable.helloworld);
}catch (Exception e){
Log.d("error_msg", ""+e);
System.out.println(">>>>>>>>>>>>>>>>>"+e);
}
//
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
我也使用了
实现'com.google.android.gms:play-services-vision:16.2.0'
如何解决此问题?
D/error_msg: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
这是我在捕获错误时遇到的错误
答案 0 :(得分:1)
您可以使用setImageResource
imageView.setImageResource(R.drawable.helloworld);
如果您特别想添加位图,请尝试调试并检查导致崩溃的错误。
答案 1 :(得分:1)
将调用super.onCreate()
和setContentView()
移动到OnCreate()
方法的顶部。像这样:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.imageView=(ImageView)findViewById(R.id.image_view);
textView=(TextView)findViewById(R.id.text_view);
button=(Button)findViewById(R.id.button_click);
try {
this.imageView.setImageResource(R.drawable.helloworld);
} catch (Exception e){
Log.d("error_msg", ""+e);
System.out.println(">>>>>>>>>>>>>>>>>"+e);
}
}
必须在调用findViewById()
之前设置布局。