Android 尝试调用虚拟方法';java.lang.String java.lang.String.trim()';关于空对象引用OTP SMS侦听器错误
我正在尝试从自动收到的短信中获取OTP(一次性密码)。我在3个项目中使用过这段代码,我以前从未遇到过这个错误,当我打印变量时,我得到了一个值。那么msgBody如何为空对象抛出错误呢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
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