Android 尝试调用虚拟方法';java.lang.String java.lang.String.trim()';关于空对象引用OTP SMS侦听器错误

Android 尝试调用虚拟方法';java.lang.String java.lang.String.trim()';关于空对象引用OTP SMS侦听器错误,android,sms,Android,Sms,我正在尝试从自动收到的短信中获取OTP(一次性密码)。我在3个项目中使用过这段代码,我以前从未遇到过这个错误,当我打印变量时,我得到了一个值。那么msgBody如何为空对象抛出错误呢 if (bundle != null) { //---retrieve the SMS message received--- try { Object[] pdus = (Object[]) bundle.get("p

我正在尝试从自动收到的短信中获取OTP(一次性密码)。我在3个项目中使用过这段代码,我以前从未遇到过这个错误,当我打印变量时,我得到了一个值。那么msgBody如何为空对象抛出错误呢

        if (bundle != null) {
            //---retrieve the SMS message received---
            try {
                Object[] pdus = (Object[]) bundle.get("pdus");
                msgs = new SmsMessage[pdus.length];
                for (int i = 0; i < msgs.length; i++) {
                    msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    msg_from = msgs[i].getOriginatingAddress();
                    msgBody = msgs[i].getMessageBody();
                }
                if (OTPFragment.onReciveSMS != null) {
                    msgBody = msgBody.replaceAll("[^\\d.]", "");
                    msgBody = msgBody.replace(".", "");
                    OTPFragment.onReciveSMS.setOnReciveSMS("sms", msgBody.trim());
                }
            } catch (Exception e) {
                Log.d("SMS Listener Exception",e.toString());
            }
if(bundle!=null){
//---检索收到的SMS消息---
试一试{
Object[]pdus=(Object[])bundle.get(“pdus”);
msgs=新SMS消息[PDU.length];
对于(int i=0;i
检查msgBody值,很可能msgBody将为null我尝试过它,但得到了一个值。因此它不是null检查msgBody值,很可能msgBody将为null我尝试过它,但得到了一个值。因此它不是null