Lint 检查“RemoveWorkManagerInitializer”失败,如何修复?

Ark*_*aha 5 android lint android-workmanager

我的 App 类实现了 Configuration.Provider.getWorkManagerConfiguration,关于本文:https ://developer.android.com/topic/libraries/architecture/workmanager/advanced/custom-configuration#on-demand

我在 AndroidManifest.xml 中使用此字符串切换了默认初始化程序:

<provider
    android:name="androidx.work.impl.WorkManagerInitializer"
    android:authorities="${applicationId}.workmanager-init"
    tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

该代码按照我的需要工作 - 没有默认的初始化程序调用,但只有 Configuration.Provider.getWorkManagerConfiguration。

如果我运行 lint 检查,我仍然会看到错误:使用按需初始化时删除 androidx.work.impl.WorkManagerInitializer。


  • Android 工作室 4.1 测试版 5
  • Gradle插件:4.1.0-beta05
  • 工作经理:2.3.4

关于如何处理它有什么想法吗?

Sal*_*nna 0

您必须删除默认的初始值设定项。要提供您自己的配置,您必须首先删除默认的初始值设定项。为此,请AndroidManifest.xml使用合并规则进行更新tools:node="remove"

从 WorkManager 2.6 开始,App Startup 在 WorkManager 内部使用。要提供自定义初始值设定项,您需要删除该androidx.startup节点。

如果您不在应用程序中使用应用程序启动,则可以将其完全删除。

<!-- If you want to disable android.startup completely. -->
 <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    tools:node="remove">
 </provider>
Run Code Online (Sandbox Code Playgroud)

否则,仅删除 WorkManagerInitializer 节点。

<provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">
    <!-- If you are using androidx.startup to initialize other components -->
    <meta-data
        android:name="androidx.work.WorkManagerInitializer"
        android:value="androidx.startup"
        tools:node="remove" />
 </provider>
Run Code Online (Sandbox Code Playgroud)

当使用低于 2.6 的 WorkManager 版本时,请删除 workmanager-init:

<provider
    android:name="androidx.work.impl.WorkManagerInitializer"
    android:authorities="${applicationId}.workmanager-init"
    tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

参考:https ://developer.android.com/guide/background/persistent/configuration/custom-configuration#on-demand