【Flutter集成】Android 项目集成 Flutter 时构建失败

        最近学习 Flutter 混合开发,按照官方方法构建失败,在尝试多种方法后终于构建成功。构建时需注意如下两点:

一、确保 gradle 插件版本不要过高

        若出现以下报错,可能是由于 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 方式优先选择项目中指定的仓库避免出错

        确定以上两点无误后,重新构建项目应该能成功,若失败可参照站内其他博文方法。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flutter是一种开源的跨平台移动应用开发框架,而Uniapp则是一种基于Vue.js的跨平台开发框架。两者都有着各自的特点和优势。 如果要将Flutter集成到Uniapp中,首先需要了解Uniapp的基本原理和使用方式。Uniapp使用Vue.js的语法和组件系统,可以开发同运行在多个平台上的应用程序,包括iOS、Android、H5和小程序等。而Flutter则是使用Dart语言开发的,可以构建高性能、高质量的移动应用。 要将Flutter集成到Uniapp中,可以使用Uniapp的插件机制。Uniapp提供了插件系统,可以通过导入Flutter的插件来使用Flutter的功能和组件。通过这种方式,我们可以在Uniapp的项目中使用Flutter的特性,如高性能的渲染引擎、丰富的UI组件和强大的开发工具等。 另外,为了方便集成和使用,一些开源社区也提供了一些Flutter插件,可以直接在Uniapp中引用和使用。这些插件可以帮助我们快速集成Flutter,并在Uniapp项目中使用Flutter的功能。 将Flutter集成到Uniapp中可以给我们带来一些好处。首先,我们可以利用Flutter的高性能和丰富的功能来提升Uniapp应用的性能和体验。同,我们还可以利用Flutter的跨平台特性,在多个平台上同开发和运行应用程序,减少开发成本和间。 总结起来,将Flutter集成到Uniapp中可以带来更好的应用性能和用户体验,同也可以帮助我们在多个平台上快速开发和发布应用程序。当然,具体的集成方式还需要根据具体项目需求和技术要求进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值