【问题标题】:Android resource linking failed due to missing boolean resource values using Jetpack Workflow由于使用 Jetpack Workflow 缺少布尔资源值,Android 资源链接失败
【发布时间】:2018-12-23 11:47:06
【问题描述】:

我正在使用一些 Jetpack 库,并且还使用了 Instantstart。

我收到以下错误:

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

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

/base/build/intermediates/merged_manifests/debugFeature/processDebugFeatureManifest/merged/AndroidManifest.xml:122: 错误:资源 bool/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"

implementation "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"

【问题讨论】:

  • 你找到解决办法了吗?我也面临类似的问题

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


【解决方案1】:

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

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

添加后,在需要的地方再次添加模块。

【讨论】:

    【解决方案2】:

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

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

    您可以选择以下两种方法之一:

    a) 如果没有令人信服的理由支持旧库,请将 API 更改回更高版本
    b) 如果您在 java 源代码中不需要这些值,请删除这些值或自己定义它们

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

    【讨论】:

    • 我的项目中有同样的问题。此错误仅在我尝试运行 Instrumentation Tests 时出现。否则,该应用程序可以正常构建和运行。我在我的项目中只使用所有库的 AndroidX 版本,所以我不知道可能是什么问题。
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 2019-02-01
      • 1970-01-01
      • 2020-03-04
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多