首页 > 解决方案 > java.lang.NoClassDefFoundError: 解析失败: Landroid/app/job/JobInfo$TriggerContentUri;

问题描述

我正在使用带有 addTriggerContentUri 的 JobScheduler 来观察特定内容 uri 的任何变化。当我运行该应用程序时,我得到了上述异常。

标签: androidandroid-jobschedulerandroid-job

解决方案


addTriggerContentUri在 API 24 (Nougat) 及更高版本的 JobInfo 中可用。如果您在 API 24 以下的任何设备中尝试此操作,您将不会收到任何编译时错误,但在运行时 Android 将尝试在 JobInfo 中查找 addTriggerContentUri,该地址将不可用并抛出上述异常(由以下原因引起
java.lang.ClassNotFoundException: Didn't find class "android.app.job.JobInfo$TriggerContentUri" on path: DexPathList[[zip file "/data/app/).

解决方案:您可以在调用此方法之前进行 API 级别检查。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
 ....
}

推荐阅读