尝试在Android Studio 3.2应用中查看位图图像后崩溃

时间:2018-12-20 04:37:20

标签: android android-bitmap

我正在尝试开发一个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

这是我在捕获错误时遇到的错误

2 个答案:

答案 0 :(得分:1)

您可以使用setImageResource

将图像资源设置为ImageView。
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()之前设置布局。