我最近将旧应用的后台服务迁移到了WorkManager。在最近的设备(低至sdk 22 included
)上,它看起来不错,可以运行重复的工作单元,甚至可以按预期在设备重新启动时安排它们。问题是,当我针对旧版本(此处的旧版本非常相关)进行测试时,Android SDK 14是我的minSdkVersion
。顺便说一句,WorkManager
也应具有相同的内容:根据doc的向后兼容,直至API 14]。如标题中所述,我得到的错误是
java.lang.RuntimeException: Unable to get provider androidx.work.impl.WorkManagerInitializer: java.lang.ClassNotFoundException: Didn't find class "androidx.work.impl.WorkManagerInitializer" on path: /data/app/com.example.myapp.apk at android.app.ActivityThread.installProvider(ActivityThread.java:4822)
我没有任何自定义WorkManager配置/初始化,我只是添加了
implementation 'androidx.work:work-runtime:2.2.0'
到我模块的gradle,并非常典型地使用它来安排后台操作。
我最近将旧应用的后台服务迁移到WorkManager。在最近的设备(包括sdk 22)上,它看起来还不错,可以运行重复的工作单元,甚至可以在整个设备上进行调度...
问题是由multiDexEnabled true
引起的,出于未知原因,我在defaultConfig中拥有它。经过一些挖掘和issue