Android Jetpack Compose导航依赖报错及SDK适配问题咨询
问题解决方案
保留compileSdk 30(无需升级到31)
你使用的androidx.navigation:navigation-compose:2.4.0-alpha07版本强制要求minCompileSdk为31,想要继续使用SDK 30只需降级导航依赖版本即可,选择2.4.0-alpha06及更低的兼容版本,依赖配置参考:
implementation "androidx.navigation:navigation-compose:2.4.0-alpha06"
该版本的minCompileSdk要求为30,不会触发AAR metadata校验错误。
升级到compileSdk 31的错误2解决方案
添加android:exported属性后依然报错,核心原因是第三方依赖库中的Activity、Service、BroadcastReceiver组件如果配置了intent filter,同样需要显式声明android:exported属性,你可以按以下步骤排查修复:
- 查看构建输出的完整错误日志,里面会明确标注缺失
android:exported属性的组件完整包名和类名 - 在你的主
AndroidManifest.xml文件的根标签添加tools命名空间:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="你的应用包名">
- 对缺失属性的第三方组件进行覆写配置,示例如下:
<activity android:name="报错提示的第三方组件完整类名" android:exported="false" tools:node="merge" />
如果是应用入口等需要对外暴露的组件,将android:exported设为true,不需要对外暴露的组件设为false即可。
- 若仍无法定位问题组件,可执行Gradle命令查看更详细的构建日志:
./gradlew processDebugManifest --stacktrace
日志输出中会精准定位所有未符合Android 12清单规则的组件位置。
内容的提问来源于stack exchange,提问作者Abhimanyu
相关产品推荐
相关产品推荐

