所以,我得到这个堆栈跟踪:
So I get this stack trace:
java.lang.NullPointerException
at android.telephony.SmsMessage$SubmitPdu.<init>(SmsMessage.java:132)
at android.telephony.SmsMessage.getSubmitPdu(SmsMessage.java:551)
at android.telephony.SmsManager.sendTextMessage(SmsManager.java:228)
at android.telephony.SmsManager.sendTextMessage(SmsManager.java:107)
at com.emergency.button.SMSSender.safeSendSMS(SMSSender.java:91)
at com.emergency.button.EmergencyActivity$EmergencyThread
.sendSMS(EmergencyActivity.java:294)
at com.emergency.button.EmergencyActivity$EmergencyThread
.sendMessages(EmergencyActivity.java:386)
at com.emergency.button.EmergencyActivity$EmergencyThread
.run(EmergencyActivity.java:266)
这是我如何打电话sendTextMessage,我不验证消息长度或电话号码的有效性:
And this is how I call sendTextMessage, I don't verify message length or phone number validity:
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
此错误似乎只发生在宏达欲望或HTC野火与Android版本2.2或2.21,所以我挖了Android平台的源代码(这实际上是不容易做到如我所料),并发现: SmsMessage.java很久虽然这一次可能是不相关的,因为我看到的一些行号不用排队的。照片 该紧急按钮项目是开源的,所以你可以检查code OUT以供参考。我也许应该注意到,我不能对此进行测试我自己,我没有任何的手机型号。
This error seems to only occur on HTC Desire or HTC Wildfire with android version 2.2 or 2.21 so I dug up the android platform source (which is actually not as easy to do as I expected) and found: SmsMessage.java once upon a time though this might not be relevant as I see some of the line numbers don't line up. The emergency button project is open source so you can check the code out for reference. I should probably note that I can't test this myself, I don't have either phone model.
您可能会触及这个问题的消息太长。我不知道为什么它会只发生于某些手机,虽然。
You might be hitting this issue with a message that is too long. I don't know why it would only be happening for certain phones, though.
http://$c$c.google.com/p/android/issues/detail?id=3718