当我将 targetSDK 设置为 API 30 后,我的 Android 应用程序无法正常工作;我如何找出原因?

aus*_*s99 2 android android-api-levels android-api-30

Google称,从 2021 年 8 月起,所有新的 Google Play 应用程序除了派生为 Android App Bundle 外,还需要以 API 30 为目标。此外,从 2021 年 11 月开始,即使是应用程序更新也需要符合要求。

因此,我将我的应用程序从目标 API 29 更新到 API 30,并且某些功能出现问题。我如何找出原因?从Google 给出的更改列表来看,这一点并不明显,因为这不仅仅是检查某些已弃用的 API 是否正在使用的问题。

理想情况下,如果 Android Studio 可以提供一种方法来查看 API 30 中的功能如何影响我的应用程序行为,那就太酷了。

aus*_*s99 5

我在 Android 开发者选项中发现了一个很酷的功能,称为应用程序兼容性更改。Google 是这样描述这些兼容性框架工具的:

Android 11 引入了新的开发人员工具,用于根据较新版本的 Android 平台中的行为更改来测试和调试您的应用。这些工具是兼容性框架的一部分,允许应用程序开发人员使用开发人员选项或 ADB 单独打开和关闭重大更改。当您准备瞄准最新的稳定 API 版本以及使用下一个 Android 版本的预览版测试您的应用程序时,请利用这种灵活性。

哇,在手机上查看它,看来您实际上可以单独打开或关闭每个新功能/更改?

开发者选项中的应用程序兼容性工具

好吧,走着瞧; 首先,它为我们提供了设备上所有可调试应用程序的列表,如果我们选择其中一个(例如,针对 API 29),那么我们实际上可以单独打开/关闭每个 API 30 功能,如下例所示,使用 CALLBACK_ON_CLEAR_CHANGE。

切换 API 30 的单个功能

凉爽的!只需注意两点:这仅适用于可调试应用程序;如果您想打开/关闭 API 30 的功能,请构建针对低于其 API 级别的可调试应用程序,即本例中的 API 29,然后打开/关闭功能并进行测试!如果您不知道哪个功能导致了问题,您可以通过选择 30 个左右的更改中的一半来加快搜索速度,看看问题是否存在,等等,放大到右侧切换。