抑制/避免在较高版本的 Android SDK 中创建的类的 java.lang.NoClassDefFoundError

Bul*_*212 5 java android kotlin

当我在运行 Android P 及更低版本的 Android 手机上执行引用https://developer.android.com/reference/android/telephony/TelephonyManager.CellInfoCallback的代码时,我在日志中收到以下消息:

拒绝对先前失败的类 java.lang.Class 进行重新初始化:java.lang.NoClassDefFoundError:解析失败:Landroid/telephony/TelephonyManager$CellInfoCallback;

我不希望此消息被发送为垃圾邮件并被客户看到。我尝试过使用注释类

@RequiresApi(api = Build.VERSION_CODES.Q)
class RadioCallback : TelephonyManager.CellInfoCallback() {
    override fun onCellInfo(p0: MutableList<CellInfo>) {
    }
}
Run Code Online (Sandbox Code Playgroud)

并且只能在 Android Q 上调用此类:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        val radioCallback = RadioCallback()
        telephonyManager.requestCellInfoUpdate(AsyncTask.SERIAL_EXECUTOR, radioCallback)
    }
Run Code Online (Sandbox Code Playgroud)

PS 此线程java.lang.NoClassDefFoundError 在旧版 Android SDK 版本上的解决方案没有帮助