如何将 targetSdkVersion 26 提升到 targetSdkVersion 30?

问题描述

今天我们将app上传到playstore,但是playstore最低要求targetSdkVersion 30。同时我们有targetSdkVersion 26。我们必须改成30。当我们在gradle中更改targetSdkVersion时,我们的应用无法访问server 和 dil logcat 有标题“RecyclerView:没有附加适配器;跳过布局”。如何克服这个问题?

TargetSdkVersion 26

Application runs fine at targetSdkVersion 26

TargetSdkVersion 30

Application does not run properly at targetSdkVersion 30

解决方法

迁移过程记录在 android 开发者文档中,从 api level 26 迁移到 api level 30 看这里:

Migrating from lower than Android 10 (API level 29)

对于从 api 级别 26 迁移,您从:

  1. 从 Android 8 (API 26) 迁移到 Android 9 (API 28)
  2. 然后“从 Android 9(API 级别 28)迁移到 Android 10(API 级别 29)”
  3. 然后您可以继续Migrate from Android 10 (API level 29) to Android 11 (API level 30)

有很多关于每个目标 sdk 碰撞中发生了什么变化的信息。您需要查看您的代码并根据需要应用更改。

关于您的特定问题:“RecyclerView:未附加适配器;跳过布局” - 如果不查看代码就很难判断。这可能是 setLayoutManager 调用延迟的问题,或者您的 logcat 中可能有其他警告/错误表明其他一些问题。

我建议先迁移到 api 28,然后迁移到 29,最后迁移到 30。每次检查您的应用程序中是否有任何错误。