我有一个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“)。
如何处理此异常?它为什么会发生?
是否有可能某些公司更改了代码,这会导致问题?