空点文本消息

时间:2012-09-04 18:47:28

标签: android nullpointerexception

我正致力于编写一个应用程序代码,该应用程序允许用户使用预先写好的文本在运行中发送短信,说他们将迟到回家。

对于应用程序的乐趣而言,这只是一个未成年人,这对于那些父母是强迫症的孩子们来说非常有用。

    @Override
        public void onClick(View v1) {
            // TODO Auto-generated method stub
            SmsManager sms = SmsManager.getDefault();
            sms.sendTextMessage(constants.num, null, "hello world - From EMTxt", null, null);
        }
    });

堆栈跟踪:

09-05 14:36:25.821: E/AndroidRuntime(317): FATAL EXCEPTION: main
09-05 14:36:25.821: E/AndroidRuntime(317): java.lang.NullPointerException
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.os.Parcel.readException(Parcel.java:1328)
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.os.Parcel.readException(Parcel.java:1276)
09-05 14:36:25.821: E/AndroidRuntime(317):  at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:369)
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.telephony.SmsManager.sendTextMessage(SmsManager.java:87)
09-05 14:36:25.821: E/AndroidRuntime(317):  at lionsimages.com.emtxt.MainActivity$1.onClick(MainActivity.java:38)
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.view.View.performClick(View.java:2485)
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.view.View$PerformClick.run(View.java:9080)
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.os.Handler.handleCallback(Handler.java:587)
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.os.Handler.dispatchMessage(Handler.java:92)
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.os.Looper.loop(Looper.java:123)
09-05 14:36:25.821: E/AndroidRuntime(317):  at android.app.ActivityThread.main(ActivityThread.java:3683)
09-05 14:36:25.821: E/AndroidRuntime(317):  at java.lang.reflect.Method.invokeNative(Native Method)
09-05 14:36:25.821: E/AndroidRuntime(317):  at java.lang.reflect.Method.invoke(Method.java:507)
09-05 14:36:25.821: E/AndroidRuntime(317):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-05 14:36:25.821: E/AndroidRuntime(317):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-05 14:36:25.821: E/AndroidRuntime(317):  at dalvik.system.NativeStart.main(Native Method)

在sms.sendTextETC行

上显示NPE

我的猜测是constant.num。但是我知道数字本身只是有趣而且只有当我按下按钮发送文本时才会停止工作。

任何想法都错了,如何解决?

1 个答案:

答案 0 :(得分:0)

我就是这样做的:

1.清单内的许可

 <uses-permission android:name="android.permission.SEND_SMS"/>

2.单击发送按钮

@Override
public void onClick(View v) {
    SmsManager smsman=SmsManager.getDefault();
    smsman.sendTextMessage("+919037934301", null, "this is sms content", null, null);
}

在你的情况下,我怀疑 constants.num 。确保,
1. constants不为空
2. constants.num不为空且有效String