在使用PhoneNumberFormattingTextWatcher的EditText上使用setText时的NPE?

时间:2015-07-23 08:03:40

标签: android android-edittext formatting textwatcher

背景

我有一个EditText,用于在其中添加电话号码。 因此,我在其上使用了这个功能:

mPhoneNumberEditText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());

在某些情况下,我需要自己输入一个电话号码,所以我在它上面使用了setText(...)(当然有一个有效的电话号码,但是甚至可以使用无效的电话号码) )。

问题

我发现在一些Android设备上(非常不受欢迎的设备,也有Android前Lollipop版本),设置文本会导致下一个异常。但这很少见:

Caused by: java.lang.NullPointerException
       at android.telephony.PhoneNumberFormattingTextWatcher.reformat(PhoneNumberFormattingTextWatcher.java:158)
       at android.telephony.PhoneNumberFormattingTextWatcher.afterTextChanged(PhoneNumberFormattingTextWatcher.java:135)
       at android.widget.TextView.sendAfterTextChanged(TextView.java:7626)
       at android.widget.TextView.setText(TextView.java:3859)
       at android.widget.TextView.setText(TextView.java:3708)
       at android.widget.EditText.setText(EditText.java:81)
       at android.widget.TextView.setText(TextView.java:3683)

我尝试了什么

我试图获取PhoneNumberFormattingTextWatcher的代码并查看它崩溃的位置,但由于某种原因,这些行与崩溃报告的行不匹配。

我还尝试获取代码以确保它是正在使用的代码,但它有一些不可用的特殊类和函数(例如“com.android.i18n.phonenumbers.AsYouTypeFormatter”和“ com.android.i18n.phonenumbers.PhoneNumberUtil“)。

问题

如何处理此异常?它为什么会发生?

是否有可能某些公司更改了代码,这会导致问题?

0 个答案:

没有答案