SmsManager空指针异常

编程入门 行业动态 更新时间:2024-10-28 02:24:22
本文介绍了SmsManager空指针异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我试图用发送短信的 smsManager 从广播接收器。我正在此错误说 NullPointerException异常。我不知道什么是错。我讨厌这样的错误。这里是我的code段

GPSTracker跟踪=新GPSTracker(背景);            MyLocation TEMP = tracker.getCurrentLocation();            字符串消息= sp.getString(auto_text,)+\\ n                    +纬度:+ temp.getLatitude()+\\ nLogitude:+ temp.getLongitude();            Toast.makeText(背景下,消息,Toast.LENGTH_LONG).show();            smsManager.sendTextMessage(smsMessage.getOriginatingAddress(),                    空,消息,NULL,NULL);

字符串消息不为空。它显示在致祝酒辞。如果我替换为消息

sp.getString(auto_text,)++ temp.getLatitude()++ temp.getLongitude();

那么它工作正常。

MyLocation.java

进口android.os.Parcel;进口android.os.Parcelable;公共类MyLocation实现Parcelable {    双纬度,经度;    公共MyLocation(){    }    公共双getLatitude(){        返回纬度;    }    公共无效setLatitude(双纬){        this.latitude =纬度;    }    公共双getLongitude(){        返回经度;    }    @覆盖    公共字符串的toString(){        返回getLatitude()+,+ getLongitude();    }    公共无效setLongitude(双经度){        this.longitude =经度;    }    @覆盖    公众诠释describeContents(){        // TODO自动生成方法存根        返回0;    }    @覆盖    公共无效writeToParcel(DEST包裹,INT标志){        dest.writeDouble(纬度);        dest.writeDouble(经度);    }    公共静态最终Parcelable.Creator< MyLocation> CREATOR =新Parcelable.Creator< MyLocation>(){        公共MyLocation createFromParcel(包裹PC){            返回新MyLocation(PC);        }        公共MyLocation [] newArray(INT大小){            返回新MyLocation【尺寸】;        }    };    公共MyLocation(包裹PC){        纬度= pc.readDouble();        经度= pc.readDouble();    }}

LogCat中

致命异常:主要8月2日至3日:54:22.822:E / AndroidRuntime(3124):了java.lang.RuntimeException:无法启动接收com.blogspot.uappmarket.locationbasedproject.Receiver.InCommingSmsReceiver:显示java.lang.NullPointerException8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.app.ActivityThread.handleReceiver(ActivityThread.java:1805)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.app.ActivityThread.access $ 2400(ActivityThread.java:117)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:981)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.os.Handler.dispatchMessage(Handler.java:99)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.os.Looper.loop(Looper.java:130)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.app.ActivityThread.main(ActivityThread.java:3683)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在java.lang.reflect.Method.invokeNative(本机方法)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在java.lang.reflect.Method.invoke(Method.java:507)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在dalvik.system.NativeStart.main(本机方法)8月2日至3日:54:22.822:E / AndroidRuntime(3124):因:显示java.lang.NullPointerException8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.os.Parcel.readException(Parcel.java:1328)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.os.Parcel.readException(Parcel.java:1276)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在com.android.internal.telephony.ISms $存根$ Proxy.sendText(ISms.java:369)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.telephony.SmsManager.sendTextMessage(SmsManager.java:87)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在com.blogspot.uappmarket.locationbasedproject.Receiver.InCommingSmsReceiver.onReceive(InCommingSmsReceiver.java:33)8月2日至3日:54:22.822:E / AndroidRuntime(3124):在android.app.ActivityThread.handleReceiver(ActivityThread.java:1794)

解决方案

我刚刚发现了这个问题的正当理由。那就是: SmsManager.sendTextMessage()抛出NullPointerException异常当短信超过大小限制。即字符数上限为159。

I am trying to send a text message using smsManager from a BroadCast Receiver.I am getting this error says NullPointerException. I do not know what is wrong with this. I am sick of this error. here is my code segment

GPSTracker tracker = new GPSTracker(context); MyLocation temp = tracker.getCurrentLocation(); String message = sp.getString("auto_text", "") + "\n" + "Latitude: "+temp.getLatitude() + "\nLogitude: "+temp.getLongitude(); Toast.makeText(context, message, Toast.LENGTH_LONG).show(); smsManager.sendTextMessage(smsMessage.getOriginatingAddress(), null, message, null, null);

String message is not null. it is displayed in toast . If I Replace message with

sp.getString("auto_text","")+" "+temp.getLatitude()+" "+temp.getLongitude();

then it is working fine.

MyLocation.java

import android.os.Parcel; import android.os.Parcelable; public class MyLocation implements Parcelable{ double latitude,longitude; public MyLocation() { } public double getLatitude() { return latitude; } public void setLatitude(double latitude) { this.latitude = latitude; } public double getLongitude() { return longitude; } @Override public String toString() { return getLatitude()+" , "+getLongitude(); } public void setLongitude(double longitude) { this.longitude = longitude; } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeDouble(latitude); dest.writeDouble(longitude); } public static final Parcelable.Creator<MyLocation> CREATOR = new Parcelable.Creator<MyLocation>() { public MyLocation createFromParcel(Parcel pc) { return new MyLocation(pc); } public MyLocation[] newArray(int size) { return new MyLocation[size]; } }; public MyLocation(Parcel pc){ latitude = pc.readDouble(); longitude = pc.readDouble(); } }

LogCat

FATAL EXCEPTION: main 02-03 08:54:22.822: E/AndroidRuntime(3124): java.lang.RuntimeException: Unable to start receiver com.blogspot.uappmarket.locationbasedproject.Receiver.InCommingSmsReceiver: java.lang.NullPointerException 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1805) 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.app.ActivityThread.access$2400(ActivityThread.java:117) 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:981) 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.os.Handler.dispatchMessage(Handler.java:99) 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.os.Looper.loop(Looper.java:130) 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.app.ActivityThread.main(ActivityThread.java:3683) 02-03 08:54:22.822: E/AndroidRuntime(3124): at java.lang.reflect.Method.invokeNative(Native Method) 02-03 08:54:22.822: E/AndroidRuntime(3124): at java.lang.reflect.Method.invoke(Method.java:507) 02-03 08:54:22.822: E/AndroidRuntime(3124): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 02-03 08:54:22.822: E/AndroidRuntime(3124): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 02-03 08:54:22.822: E/AndroidRuntime(3124): at dalvik.system.NativeStart.main(Native Method) 02-03 08:54:22.822: E/AndroidRuntime(3124): Caused by: java.lang.NullPointerException 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.os.Parcel.readException(Parcel.java:1328) 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.os.Parcel.readException(Parcel.java:1276) 02-03 08:54:22.822: E/AndroidRuntime(3124): at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:369) 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.telephony.SmsManager.sendTextMessage(SmsManager.java:87) 02-03 08:54:22.822: E/AndroidRuntime(3124): at com.blogspot.uappmarket.locationbasedproject.Receiver.InCommingSmsReceiver.onReceive(InCommingSmsReceiver.java:33) 02-03 08:54:22.822: E/AndroidRuntime(3124): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1794)

解决方案

I just found a valid reason for this problem. That is : SmsManager.sendTextMessage() throws NullPointerException when SMS message is over size limit. i.e. max character limit is 159.

更多推荐

SmsManager空指针异常

本文发布于:2023-08-02 17:49:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1279856.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:指针   异常   SmsManager

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!