java.lang.NoClassDefFoundError: Failed resolution of: Landroid/app/job/JobInfo$TriggerContentUri;

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/app/job/JobInfo$TriggerContentUri;

我正在使用 JobScheduler 和 addTriggerContentUri 观察特定内容 uri 中的任何更改。当我 运行 应用程序时,出现上述异常。

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) {
 ....
}