Flutter 项目中的 Gradle 配置警告,Apps targeting Android 12 and higher are required to specify an explicit value for android:exported,已弃用的 apply 方法来应用 Gradle 插件
你遇到的错误与 Flutter 项目中的 Gradle 配置和 Android 12 的新要求相关。下面是逐步解决这些问题的方案:
1. 解决 android:exported 问题
Android 12 及更高版本要求在 AndroidManifest.xml 中的每个有 intent-filter 的 Activity 必须显式地声明 android:exported 属性,否则会报错。你可以通过以下步骤来修复:
步骤:
-
打开
AndroidManifest.xml文件,路径为:/Users/xiqiang.Zhu/Downloads/flutter_ys7-0.2.6/example/android/app/src/main/AndroidManifest.xml -
找到
<activity>标签,并确保它们都有android:exported属性。如果没有,则手动添加。android:exported可以是true或false,具体取决于你的应用是否允许其他应用启动这个Activity。
例如:
<activity android:name=".MainActivity" android:exported="true" <!-- 必须显式声明 --> android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|screenLayout|density|layoutDirection" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> - 对所有有
intent-filter的Activity都进行此更改。
2. Flutter 的 Gradle 插件应用方式已过时
你还收到了 Flutter 提示的 apply 方式已被弃用的警告。Gradle 的插件应用方法应从原先的 apply 语法迁移到声明式的 plugins 块。
修复方法:
-
打开
android/build.gradle文件。 -
在该文件的顶端,你会看到类似这样的代码:
apply plugin: 'com.android.application'apply plugin: 'kotlin-android'apply from: "$flutterRoot/packages/flutter_tools/gradle/app_plugin_loader.gradle" -
修改为声明式的
plugins块,具体如下:plugins {id 'com.android.application'id 'kotlin-android'id 'com.google.gms.google-services' // 如果有这个插件的话}然后移除旧的
apply语句。
另外:
在某些情况下,Flutter Gradle 插件可能仍会通过 apply from 使用。Flutter 团队正在推荐迁移,因此你可以参考 Flutter 官方文档中的迁移指南: Flutter Gradle Plugin Apply
3. 解决 KGP 版本检测警告
这个警告通常与 Kotlin Gradle Plugin (KGP) 版本相关,但它本身不会阻止项目运行。如果你还没有在项目中显式声明 Kotlin Gradle Plugin 版本,可以在 android/build.gradle 中添加:
buildscript { ext.kotlin_version = '1.8.0' // 更新为你想使用的 Kotlin 版本 repositories { google() mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } 4. 清理和重新构建项目
在进行这些更改后,清理并重新构建你的项目:
flutter clean flutter pub get 然后再运行项目:
flutter run 总结
- 在
AndroidManifest.xml中添加android:exported属性。 - 将 Gradle 插件的应用方式迁移为声明式的
plugins块。 - 声明并检查 Kotlin Gradle Plugin 版本。
- 清理和重新构建项目。
通过以上步骤,你应该能够修复这些错误并正常构建和运行应用。
浙公网安备 33010602011771号