如何在.NET Android项目中声明androidx.work:work-multiprocess依赖?
.NET Android 中添加 Work Multiprocess 依赖的解决方案
问题描述
在.NET Android项目中实现跨进程Remote Worker时,需要对应Android原生的implementation "androidx.work:work-multiprocess:$work_version"依赖,但不知道如何在.NET环境中配置。当前已使用Xamarin.AndroidX.Work.Runtime 2.10.0.1包处理Worker逻辑,Manifest中已配置RemoteWorkManagerService和SystemJobService的跨进程参数,但调用RemoteWorkManager.GetInstance(BaseContext)时抛出错误:
Java.Lang.IllegalStateException: Invalid multiprocess configuration. Define an 'implementation' dependency on :work:work-multiprocess library
Manifest配置片段:
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:label="@string/app_name" android:supportsRtl="true"> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge" > <meta-data android:name="androidx.work.WorkManagerInitializer" android:value="androidx.startup" tools:node="remove" /> </provider> <service android:name="androidx.work.multiprocess.RemoteWorkManagerService" tools:replace="android:process" android:process=":ffmpegWorker"/> <service android:name="androidx.work.impl.background.systemjob.SystemJobService" tools:replace="android:process" android:process=":ffmpegWorker"/> </application>
调用RemoteWorkManager的代码片段:
var inputData = new Data.Builder() .PutString(nameof(_fifoFilename), _fifoFilename) .Build(); var ffmpegWorker = OneTimeWorkRequest.Builder.From<FfmpegWorker>() .SetInputData(inputData) .Build(); try { if (!WorkManager.IsInitialized) { var configuration = new Configuration.Builder() .SetDefaultProcessName(":ffmpegWorker") .Build(); WorkManager.Initialize(BaseContext, configuration); } var manager = RemoteWorkManager.GetInstance(BaseContext); manager.Enqueue(ffmpegWorker); } catch (Exception e) { // 异常处理 }
解决方案
在.NET Android项目中,Android原生的androidx.work:work-multiprocess对应的NuGet包是**Xamarin.AndroidX.Work.Multiprocess**,安装步骤如下:
- 右键项目 → 选择「管理NuGet程序包」
- 在「浏览」标签页搜索
Xamarin.AndroidX.Work.Multiprocess - 选择与当前已安装的
Xamarin.AndroidX.Work.Runtime相同版本(如2.10.0.1)的包进行安装
额外注意事项
- 确保WorkManager初始化时,
Configuration.Builder设置的DefaultProcessName与Manifest中服务配置的android:process值一致 - 安装完成后,清理并重新生成项目,避免缓存导致的依赖未加载问题
内容的提问来源于stack exchange,提问作者Pavlo Holotiuk
相关产品推荐
相关产品推荐

