我正致力于编写一个应用程序代码,该应用程序允许用户使用预先写好的文本在运行中发送短信,说他们将迟到回家。
对于应用程序的乐趣而言,这只是一个未成年人,这对于那些父母是强迫症的孩子们来说非常有用。
@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。但是我知道数字本身只是有趣而且只有当我按下按钮发送文本时才会停止工作。
任何想法都错了,如何解决?
答案 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