首页 > 解决方案 > 如何使用“拒绝在先前失败的类上重新初始化”来抑制有关 NoClassDefFoundError 的警告?

问题描述

在我的班级中声明了一个 android.net.wifi.WifiManager$ScanResultsCallback 字段。这是 API 级别 30 中提供的新类。如果我的应用程序在早期的 Android 版本上运行,ART 会给我一个抛出的信息:

I/art: Rejecting re-init on previously-failed class java.lang.Class<xxxx>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/net/wifi/WifiManager$ScanResultsCallback;

在旧 android 上运行时,我的代码不会实例化对象。所以它不会崩溃。

而且我知道反射可以通过使此类仅在最新的 android 版本上知道来解决它。

我的问题是,有没有其他简单的方法来解决它?androidx的注释可以帮助我吗?

标签: androidclassloader

解决方案


推荐阅读