androidx.work.impl.WorkManagerInitializer: java.lang.ClassNotFoundException: "androidx.work.impl.WorkManagerInitializer" 在路径上: /data/app/app-2.apk
androidx.work.impl.WorkManagerInitializer: java.lang.ClassNotFoundException: "androidx.work.impl.WorkManagerInitializer" on path: /data/app/app-2.apk
我最近将旧应用程序的后台服务迁移到了 WorkManager。在最近的设备上(低至 sdk 22 included)它看起来不错,运行 重复工作单元并按预期在设备重新启动时安排它们。
问题是当我针对旧版本进行测试时(旧版本在这里是非常相对的),Android sdk 14 这是我的 minSdkVersion
。顺便说一句,WorkManager
也应该有相同的:向后兼容到 API 14 根据 doc。如标题所述,我得到的错误是:
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 configuration/initialization,我只是添加了
implementation 'androidx.work:work-runtime:2.2.0'
到我的模块的 gradle 并非常典型地使用它来安排后台操作。
问题是由 multiDexEnabled true
引起的,我出于未知原因在 defaultConfig 中设置了它。经过一些挖掘和 issue
我发现了它
我在 Androd 19
中遇到同样的问题
阅读 and this 我用
解决了
Gradle:
multiDexEnabled true
Java:
public class MyApp extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
我最近将旧应用程序的后台服务迁移到了 WorkManager。在最近的设备上(低至 sdk 22 included)它看起来不错,运行 重复工作单元并按预期在设备重新启动时安排它们。
问题是当我针对旧版本进行测试时(旧版本在这里是非常相对的),Android sdk 14 这是我的 minSdkVersion
。顺便说一句,WorkManager
也应该有相同的:向后兼容到 API 14 根据 doc。如标题所述,我得到的错误是:
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 configuration/initialization,我只是添加了
implementation 'androidx.work:work-runtime:2.2.0'
到我的模块的 gradle 并非常典型地使用它来安排后台操作。
问题是由 multiDexEnabled true
引起的,我出于未知原因在 defaultConfig 中设置了它。经过一些挖掘和 issue
我在 Androd 19
中遇到同样的问题阅读
Gradle:
multiDexEnabled true
Java:
public class MyApp extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}