gpt4 book ai didi

java - IllegalStateException:WorkManager 已经初始化

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:44 25 4
gpt4 key购买 nike

具有这些依赖性:

dependencies {
implementation "androidx.work:work-runtime:2.0.1"
androidTestImplementation "androidx.work:work-testing:2.0.1"
}

第二次运行这段代码时:

Configuration config = new Configuration.Builder().build();
WorkManager.initialize(getApplicationContext(), config);

this.workManager = WorkManager.getInstance();

我收到此错误消息:

java.lang.IllegalStateException: WorkManager is already initialized.
Did you try to initialize it manually without disabling WorkManagerInitializer?
See WorkManager#initialize(Context, Configuration) or the class level Javadoc for more information.

它还会在 native 端引发段错误:

A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR),
fault addr 0x878 in tid 10892 (ova.workmanager),
pid 10892 (ova.workmanager)

这将是 documentation对于 WorkManager#initialize(Context, Configuration)


目的是为了防止在手动初始化时崩溃(为了改变日志级别)。如何禁用 WorkManagerInitializer?如果可能,我不想使用 static 关键字。

最佳答案

这是替换提供者 androidx.work.impl.WorkManagerInitializer 的方法:

<application>
...

<!-- disable default provider -->
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
android:exported="false"
android:enabled="false"/>

<!-- register custom provider -->
<provider
android:name=".CustomWorkManagerInitializer"
android:authorities="${applicationId}.WorkManagerInit"/>

</application>

来源:Custom Work Manager initialization (在 Kotlin 中)。


除非注册另一个提供者,否则会出现:

java.lang.IllegalStateException: WorkManager is not initialized properly. The most
likely cause is that you disabled WorkManagerInitializer in your manifest but forgot
to call WorkManager#initialize in your Application#onCreate or a ContentProvider.

以及在src/debug/Manifest.xml中注册的ContentProvider:

public class WorkManagerInit extends ContentProvider {

@Override
public boolean onCreate() {
if(getContext() != null) {
Configuration config = new Configuration.Builder().build();
WorkManager.initialize(getContext().getApplicationContext(), config);
}
return true;
}
...
}

关于java - IllegalStateException:WorkManager 已经初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55875198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com