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 文件中。
使用 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 文件中。