赞
踩
最近学习 Flutter 混合开发,按照官方方法构建失败,在尝试多种方法后终于构建成功。构建时需注意如下两点:
若出现以下报错,可能是由于 Gradle 插件版本过高
> Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl. > Namespace not specified. Please specify a namespace in the module's build.gradle file like so:
若 Android Studio 版本过高(如 Flamingo),自动生成的 Gradle 版本是 8.0+。目前笔者尚未找到 8.0+ 版本构建混合项目成功的例子,因此建议降级。
通过 “File -> Project Structure... -> Project” 找到修改 Gradle 插件版本与 Gradle 版本的页面,将二者版本降至 7.0 或以下。
目前构建成功的版本号可供参考:
Gradle 插件版本:7.0.4
Gradle 版本:7.6.1
gradle 版本问题解决后,若出现如下报错,说明仓库策略可能存在问题。
Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by plugin class 'FlutterPlugin'
打开安卓根目录下 settings.gradle 文件,修改仓库依赖策略:
- dependencyResolutionManagement {
- // repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
- repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) // 修改
- repositories {
- google()
- mavenCentral()
- }
- }
依赖策略说明:
PREFER_PROJECT:优先使用build.gradle中的repositories { },忽略settings.gradle中的repositories { } ;
PREFER_SETTINGS:优先使用settings.gradle中的repositories { } ,忽略build.gradle中的repositories { };
FAIL_ON_PROJECT_REPOS:在build.gradle中声明的repositories { } 会导致编译错误
从报错中不难看出是 Flutter 端指定仓库导致无法构建,选择 PREFER_PROJECT 方式优先选择项目中指定的仓库避免出错
确定以上两点无误后,重新构建项目应该能成功,若失败可参照站内其他博文方法。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。