FakeAppUpdateManager - 不再处理 API 31+,在创建 PendingIntent 和获取 appUpdateInfo 时不指定可变性标志

FakeAppUpdateManager - No longer working on API 31+, does not specify mutability flag when creating PendingIntent, when fetching appUpdateInfo

使用 PlayCoreKtx 版本 1.8.1,

我有一个测试 Play Core 的 inAppUpdate 功能的仪器测试。我的测试中有一个函数看起来像这样

private fun processAvailableUpdate(appUpdateType: AppUpdateType) = mainActivityScenario.onActivity { mainActivity ->
    AppUpdater.processAvailableUpdate(
        mainActivity,
        AppUpdateResult.Available(
            fakeAppUpdateManager,
            Tasks.await(fakeAppUpdateManager.appUpdateInfo)
        ), appUpdateType
    )
}

我在线上收到以下异常

Tasks.await(fakeAppUpdateManager.appUpdateInfo)

java.lang.IllegalArgumentException:针对 S+(版本 31 及更高版本)要求在创建 PendingIntent 时指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一。

我假设在 PlayCore 库中修复之前无法解决这个问题?除非我遗漏了什么。

感谢您的帮助

原来问题已在

中修复
com.google.android.play:core:1.10.3

如果你只有

com.google.android.play:core-ktx:1.8.1

在你的依赖项中,然后你有这个错误。因此,请确保将这两个依赖项都添加到您的 gradle 文件中。