Android 使用可选的缺失库时如何避免异常

Android 使用可选的缺失库时如何避免异常,android,access-violation,Android,Access Violation,我已经将谷歌地图API添加到我的应用程序中,但这不是关键部分。我希望我的应用程序在缺少此库的系统上运行,但避免在用户尝试访问map函数时出现异常。我尝试在活动周围放置try/catch块,但它似乎无法捕获缺少的库异常。在开始我的地图活动之前,是否有任何方法可以检测到地图库丢失 更新:我问这个问题的原因是因为我买了MK802安卓迷你PC,我相信这款设备会很受欢迎。它随Android4.0提供,但是缺少MapAPI库。我希望我的应用程序可以安装在设备上。目前,我的应用运行良好,但当用户尝试访问地图功

我已经将谷歌地图API添加到我的应用程序中,但这不是关键部分。我希望我的应用程序在缺少此库的系统上运行,但避免在用户尝试访问map函数时出现异常。我尝试在活动周围放置try/catch块,但它似乎无法捕获缺少的库异常。在开始我的地图活动之前,是否有任何方法可以检测到地图库丢失


更新:我问这个问题的原因是因为我买了MK802安卓迷你PC,我相信这款设备会很受欢迎。它随Android4.0提供,但是缺少MapAPI库。我希望我的应用程序可以安装在设备上。目前,我的应用运行良好,但当用户尝试访问地图功能(不是很重要的功能)时崩溃。我想我可以接受这一点,但如果可能的话,最好避免出现例外情况。

谷歌提供了一篇关于如何在Android版本之间做到这一点的文章。也就是说,我如何在特定版本的Android中访问api,但如果在另一个版本的Android中不存在api,则如何优雅地失败。同样的前提也可以用于代码的映射部分

底线是您正在使用反射来实现这一点


使用反射的原因是,如果您的活动导入了另一个类,但该类不存在,则无法创建该活动。使用反射可以解决这一问题,因为您可以尝试/捕获类实例化。

如果代码引用了一个lirbary(例如导入),那么它就不再是可选的,因为如果它不可用,编译器会抱怨。你最好的办法是重新思考你想要实现的目标