3

我正在探索文档中指定的撰写导航。

使用文档中指定的版本添加依赖2.4.0-alpha07项,会出现以下错误,

错误 1

检查 AAR 元数据值时发现的一个或多个问题:

在依赖项的 AAR 元数据 (META-INF/com/android/build/gradle/aar-metadata.properties) 中指定的 minCompileSdk (31) 大于此模块的 compileSdkVersion (android-30)。依赖:androidx.navigation:navigation-compose:2.4.0-alpha07。AAR 元数据文件:/Users/abhimanyu/.gradle/caches/transforms-3/0575ff5712e0a9c15b8d7424501c07b8/transformed/jetified-navigation-compose-2.4.0-alpha07/META-INF/com/android/build/gradle/aar-metadata。特性。

这个错误迫使我将我的应用程序从 30 升级到 31 compileSdkVersiontargetSdkVersion

升级版本会出现此错误,

错误 2

清单合并失败:针对 Android 12 及更高版本的应用需要为android: exported相应组件定义了意图过滤器时指定显式值。有关详细信息,请参阅https://developer.android.com/guide/topics/manifest/activity-element#exported

为了解决这个问题,检查了这篇文章

即使在添加 之后android:exported,我也会收到相同的错误(错误 2)。

compileSdkVersion升级到 31 是强制性的吗?

如果是,如何解决错误 2。如果不是,如何解决错误 1?

如果可能的话,我个人更喜欢坚持使用 SDK 30。

4

1 回答 1

15

现在每个发布的 AndroidX 库都使用 API 31 编译

您也可以在Accompanist 发行说明中查看它:

Accompanist 现在是针对 SDK 31 构建的: 这意味着您的应用程序还需要针对 SDK 31 进行编译。这是针对 SDK 31 构建的最新 AndroidX 版本所必需的。

只需在您的build.gradle

compileSdkVersion 31

但您应该始终使用最新的 SDK 进行编译,因为它不会改变您的应用行为。这与您的 没有关系targetSdkVersion,您可以根据需要继续设置。

唯一的规则是:

minSdkVersion <= targetSdkVersion <= compileSdkVersion 

文档中的更多详细信息。

于 2021-08-28T14:04:14.310 回答