gpt4 book ai didi

android - Android 10 上的 TelephonyManager 崩溃

转载 作者:行者123 更新时间:2023-12-04 23:40:55 29 4
gpt4 key购买 nike

我在我的 Crashlytics 中获得了以下堆栈跟踪,适用于各种 android 10 设备。
致命异常:java.lang.NullPointerException
尝试在空对象引用上调用虚拟方法“java.lang.Throwable android.os.ParcelableException.getCause()”

android.telephony.TelephonyManager$1.lambda$onError$2
android.telephony.TelephonyManager$1.lambda$onError$2 (TelephonyManager.java:5346)
android.telephony.-$$Lambda$TelephonyManager$1$DUDjwoHWG36BPTvbfvZqnIO3Y88.run (-.java:6)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
java.lang.Thread.run (Thread.java:919)
没有引用导致此问题的应用程序的哪个部分,但我正在使用 TelephonyManager 获取设备 MCC 和 MNC,如下所示
  fun getMCCFromDevice(context: Context): String? {
try {
val tm = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
if (tm != null) {
val networkOperator = tm!!.getNetworkOperator()
if (!TextUtils.isEmpty(networkOperator)) {
return networkOperator.substring(0, 3)
}
}
} catch (e: Exception) {
e.printStackTrace()
}

return null

}

fun getMNCFromDevice(context: Context): String? {
try {
val tm = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
if (tm != null) {
val networkOperator = tm!!.getNetworkOperator()
if (!TextUtils.isEmpty(networkOperator)) {
return networkOperator.substring(3) // Extract MNC part
}
}
} catch (e: Exception) {
e.printStackTrace()
}

return null
}

最佳答案

如果问题是由于访问 java.lang.Throwable android.os.ParcelableException.getCause()此异常实例上的方法,你应该避免调用e.printStackTrace()在你的 catch block 中 ,因为在内部它将调用 getCause()方法。

关于android - Android 10 上的 TelephonyManager 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67762406/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com