由于缺少使用Jetpack Workflow的布尔资源值,Android资源链接失败

时间:2018-07-16 00:12:02

标签: android kotlin build.gradle kotlin-android-extensions android-jetpack

我正在使用某些Jetpack库,也正在使用Instantstart。

我遇到这些错误:

  

Android资源链接失败输出:   /base/build/intermediates/merged_manifests/debugFeature/processDebugFeatureManifest/merged/AndroidManifest.xml:66:   错误:资源布尔/ enable_system_alarm_service_default(又名   找不到farm.app:bool/enable_system_alarm_service_default)。

     

/base/build/intermediates/merged_manifests/debugFeature/processDebugFeatureManifest/merged/AndroidManifest.xml:71:   错误:资源布尔/ enable_system_job_service_default(又名   找不到farm.app:bool/enable_system_job_service_default)。

     

/base/build/intermediates/merged_manifests/debugFeature/processDebugFeatureManifest/merged/AndroidManifest.xml:122:   错误:资源布尔/ enable_system_alarm_service_default(又名   找不到farm.app:bool/enable_system_alarm_service_default)。

     

/base/build/intermediates/merged_manifests/debugFeature/processDebugFeatureManifest/merged/AndroidManifest.xml:137:   错误:资源整数/ google_play_services_version(又名   找不到farm.app:integer/google_play_services_version。错误:   处理清单失败。

结合AndroidManifest中的一个例子是:

<receiver
    android:name="androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver"
    android:enabled="@bool/enable_system_alarm_service_default"
    android:exported="false" >
    <intent-filter>
        <action android:name="androidx.work.impl.background.systemalarm.UpdateProxies" />
    </intent-filter>
</receiver>

我查看了Error processing / merging manifest,但这与我没有创建这些值的情况有所不同。

我应该为这些布尔值创建一个res / values还是应该在其中,而我错过了一些东西。

可能是引起问题的文件是:

def work_version =“ 1.0.0-alpha04”

实现“ android.arch.work:work-runtime-ktx:$work_version” //对Kotlin使用-ktx

//可选-Firebase JobDispatcher支持 实现“ android.arch.work:work-firebase:$work_version”

//可选-测试助手 androidTestImplementation“ android.arch.work:work-testing:$work_version”

3 个答案:

答案 0 :(得分:5)

您还应该向您的应用模块或核心模块添加依赖项:

implementation 'androidx.work:work-runtime-ktx:2.3.4'

添加后,再次在需要的位置添加模块。

答案 1 :(得分:1)

您肯定缺少这些值的声明。 您是否正在尝试处理现有项目,并且可能正在更改API(compileSdkVersion和targetSdkVersion)?

尝试使用提供的版本编译项目。如果模块之前编译成功,那么您可能已将API更改为未定义这些bool值的较低版本。

您可以执行以下两项之一:

a)如果没有令人信服的理由支持旧库,则将API改回更高版本
b)如果您不需要在Java源代码中使用这些值,也可以自行定义它们

我最近遇到了类似的问题,希望这些想法对您有所帮助-可能已经解决了,因为两个月前提出了这个问题。 听到解决您问题的方法会很有趣。

答案 2 :(得分:0)

当我的代码库具有动态功能时,我也遇到类似的问题。解决方案是使用androidTestImplementation包括对测试模块的workManager依赖性。

androidTestImplementation androidx.work:work-runtime-ktx:<version>

我添加了通用gradle文件,它为我解决了这个问题。