您可能最近收到了来自Google Play商店的电子邮件,内容如下:
更新您的Play Core Maven依赖项,以使用与Android 14兼容的版本!您当前的Play Core库与targetSdkVersion 34(Android 14)不兼容,这引入了对广播接收器的向后不兼容更改,以提高用户安全性。作为提醒,从8月31日起,Google Play要求所有新应用发布必须针对Android 14。更新到最新的Play Core库版本依赖项,以避免应用崩溃:https://developer.android.com/guide/playcore#playcore-migration
使用此SDK版本,您可能无法将未来版本的您的应用发布到生产或公开测试。
听起来很吓人,不是吗?
不必过于担忧。实际上,它看起来要简单得多。
变化的实际内容
基本上,Google自2022年初以来就不再发布play core库的新版本了。
最后发布的play core库版本
并且从2022年4月起,他们将原来的play core库拆分为四个单独的库:
- Play Assets Delivery Library(Play资源交付库)
- Play Feature Delivery Library(Play特性交付库)
- Play In-App Reviews Library(Play应用内评价库)
- Play In-App Updates Library(Play应用内更新库)
每个库都有其自身的功能和责任。
由于旧的核心播放库只支持到一定API级别,您需要将应用程序迁移到支持最新API级别的较新库。
本质上,您需要弄清楚原始核心播放库中您使用了哪些功能,然后下载正确的部分。例如,如果您有逻辑用于在应用程序有新版本可用时通知用户,您需要使用Play In-App-Updates库。
我们将在下面介绍两个用例:
- 原生Android应用程序
- Flutter应用程序
用例——原生Android应用
如果您有一个原生Android应用程序,无论它是用Kotlin还是Java编写的,您需要执行以下操作:
- 打开您的应用程序级build.gradle文件
- 在依赖项块中,您可能会看到以下这行:
implementation 'com.google.android.play:core-ktx:1.8.1'
-
您需要删除它,并根据您在之前的核心库中使用的内容进行替换
-
如果您需要使用Play In-App-Updates库,那么您需要将这些添加到依赖项块中:
implementation 'com.google.android.play:app-update:2.1.0'
//如果您在应用程序中使用Kotlin,请添加以下依赖项
implementation 'com.google.android.play:app-update-ktx:2.1.0'
- 重建你的应用程序,并确保一切工作正常。
✋ 你可能还需要将导入语句从 import com.google.android.play.core.tasks.*; 更改为 import com.google.android.gms.tasks.*;。
用例——Flutter应用程序
由于Flutter是一个同时适用于Android和iOS的框架,这种情况与上面的略有不同。如果你在Flutter应用程序中收到升级核心play库的警告,你需要查看pubspec.yaml文件中你正在使用的库:
dependencies:
flutter:
sdk: flutter
...
in_app_update: ^3.0.0
如你所见,应用程序依赖于 in_app_update 库,这个库与通知用户应用程序有新版本可用有关。当我们转到in_app_update的pub.dev 更新日志页面,我们可以看到:
版本4.1.0添加了所需的支持
所以我们需要更新我们的pubspec.yaml文件以使用该版本(至少)。
dependencies:
flutter:
sdk: flutter
...
in_app_update: ^4.1.0
运行Pub get,你应该就可以顺利进行了。
Source:
https://www.freecodecamp.org/news/migrate-from-play-core-library/