原因:声明EditText的时候要放在方法里,不能全局声明。
如:
private void handOne(String msg) {
final EditText et = new EditText(this);
et.setInputType(InputType.TYPE_CLASS_NUMBER);
new MaterialDialogET(this).setMDMessage("请输入数量")
.setMDCustomView(et)
.setMDConfirmBtnClick(new MaterialDialogET.DialogBtnCallBack() {
@Override
public void dialogBtnOnClick() {
// et.getText().toString();
Logger.e("="+et.getText().toString());
// TODO: 2018/6/11
// showLoadingDialog(null);
// doHttp(RetrofitUtils.createApi(xx.class).xx(parm1, parm2), 1);
}
}).show();
}
某次,在一个普通的类中,获取手机串号,写法不当也会报此类异常。如:
public void initData(){
BaseApplication ba = new BaseApplication();
TelephonyManager tm = (Telephonemanager) ba.getSystemService(Activity.TELEPHONY_SERVICE);
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED){
return;
}
tm.getDeviceId();
}
正确的写法应该是 ba 替换为 getApplicationContext()