Android Jetpack Compose 导航中的依赖性问题

Abh*_*bhi 3 android android-jetpack-compose jetpack-compose-navigation

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

添加文档中指定的版本的依赖项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。

Gab*_*tti 15

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

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

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

只需在您的build.gradle

compileSdkVersion 31
Run Code Online (Sandbox Code Playgroud)

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

唯一的规则是:

minSdkVersion <= targetSdkVersion <= compileSdkVersion 
Run Code Online (Sandbox Code Playgroud)

文档中有更多详细信息。