gpt4 book ai didi

android - 如何处理 super.onCreate 中的异常?

转载 作者:行者123 更新时间:2023-11-29 18:02:04 24 4
gpt4 key购买 nike

是否有安全的方法来处理 super.onCreate(savedInstanceState) 抛出的异常?

我的极少数用户遇到了这个错误

java.lang.NoClassDefFoundError - android.security.MessageDigest

原因在 this question 中讨论, 但基本上 MapActivity 类的 onCreate 可以抛出 NoClassDefFoundError。我担心提前检测条件可能无法证明 future 。

我认为对我的类(扩展 MapActivity)最安全的解决方案是捕获 NoClassDefFoundError 并改为启动一个指向 Google map 的 URL,例如

    try {            
super.onCreate(savedInstanceState);
} catch (NoClassDefFoundError err) {
StringBuilder url = new StringBuilder(
"http://maps.google.com/maps?q=").append(latitude)
.append(",").append(longitude).append("&z=18");

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url.toString()));
startActivity(i);
finish();
return;
}

但是,我担心当 NoClassDefFoundError 发生时,我的代码会因 SuperNotCalledException 而崩溃。

在调用 super.onCreate 时是否有安全的方法来处理异常/错误?

最佳答案

A very small number of my users are hitting this error

他们是运行盗版 Google map 子系统的用户。谷歌地图在所有版本的 Android 上都能正常工作,被许可人将获得合适的版本。但是,智障盗版者有时会在较新的设备上使用一组旧的盗版 map 二进制文件,从而导致此问题。

However, I'm worried that my code will crash with a SuperNotCalledException when the NoClassDefFoundError occurs.

很有可能确实是这种情况,或者其他一些异常,因为 startActivity() 可能会因为缺少 super.onCreate() 而崩溃.就此而言,finish() 也可能如此。不过,当然欢迎您尝试。

Is there a safe way to handle exceptions/errors in a call to super.onCreate?

一般不会。

关于android - 如何处理 super.onCreate 中的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15421073/

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