从A_activity由Intent跳转B_activity后,为什么B中的View监控器会报异常:
B_activity中相关代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_decode);
btnCreate=(Button)findViewById(R.id.btnCreate);
iv2DCode=(ImageView)findViewById(R.id.iv2DCode);
etContent=(EditText)findViewById(R.id.etContent);

//生成二维码
btnCreate.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
String codeContent=etContent.getText().toString();
try {
Bitmap bm2DCode = new DecodeAndEncode().Create2DCode(codeContent);
iv2DCode.setImageBitmap(bm2DCode);
} catch (WriterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
});
}

解决方案 »

  1.   

    测试一下非跳转时候设置不同的codeContent作为参数看报不报异常
    比如设为""等不规则的字符
      

  2.   

    把异常捕获处理语句注释后就正常,奇怪了:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_decode);
    btnCreate=(Button)findViewById(R.id.btnCreate);
    iv2DCode=(ImageView)findViewById(R.id.iv2DCode);
    etContent=(EditText)findViewById(R.id.etContent);

    //生成二维码
    btnCreate.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
    String codeContent=etContent.getText().toString();
    try {
    Bitmap bm2DCode = new DecodeAndEncode().Create2DCode(codeContent);
    iv2DCode.setImageBitmap(bm2DCode);
    } catch (WriterException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } }
    });
    }
      

  3.   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_decode);
    btnCreate=(Button)findViewById(R.id.btnCreate);
    iv2DCode=(ImageView)findViewById(R.id.iv2DCode);
    etContent=(EditText)findViewById(R.id.etContent);

    //生成二维码
    btnCreate.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
    String codeContent=etContent.getText().toString();
    /**try {
    Bitmap bm2DCode = new DecodeAndEncode().Create2DCode(codeContent);
    iv2DCode.setImageBitmap(bm2DCode);
    } catch (WriterException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }**/ }
    });
    }
      

  4.   

    可能是jdk版本问题了,你是不是用的jdk1.6啊,,如果不是,改成1.6看看
      

  5.   

    我推测一下,你这个Create2DCode方法是不是开启了新的线程,你试下把注释的语句用异步任务重新写一下看行不行,仅供参考