当前位置: 首页 > news >正文

Flutter旧版本升级-> Android 配置、iOS配置

1------------android

android部分:

部分原文:原文链接:https://blog.csdn.net/weixin_73167149/article/details/149289805

概括
要构建适用于 Android 的 Flutter 应用,必须应用 Flutter 的 Gradle 插件。过去,这是通过 Gradle 的传统命令式应用脚本方法以命令式方式完成的。

Flutter 3.16 新增了使用 Gradle声明式 plugins {} 块(也称为插件 DSL)应用这些插件的支持,现在已成为推荐方法。从 Flutter 3.16 开始,flutter create使用插件 DSL 生成的项目将使用 Gradle 插件。使用 Flutter 3.16 之前版本创建的项目需要手动迁移。

以上是官网原话https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply,

基本上修改文件:

setting.gradle文件:大致如下

pluginManagement {def flutterSdkPath = {def properties = new Properties()file("local.properties").withInputStream { properties.load(it) }def flutterSdkPath = properties.getProperty("flutter.sdk")assert flutterSdkPath != null, "flutter.sdk not set in local.properties"return flutterSdkPath}()includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")repositories {google()mavenCentral()gradlePluginPortal()}
}plugins {id "dev.flutter.flutter-plugin-loader" version "1.0.0" // apply trueid "com.android.application" version "{agpVersion}" apply falseid "org.jetbrains.kotlin.android" version "{kotlinVersion}" apply false
}include ":app"

android/build.gralde文件 大致如下

allprojects {repositories {google()mavenCentral()}
}rootProject.buildDir = '../build'
subprojects {project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {project.evaluationDependsOn(':app')
}tasks.register("clean", Delete) {delete rootProject.buildDir
}

android/app/build.gralde文件内容改动较多,请看原文:https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply,

配置上上面的文件,还有一个大问题:最大的兼容性问题通常来自于 Gradle 和插件版本不匹配,所以会导致android编译不通过。会有很多三方的namespace问题,这个问题简单的解决方案就是去对应的三方的路径下:举例

      /Users/xxx/.pub-cache/hosted/pub.dev/wakelock-0.4.0/android/build.gradle 

去这个里面加上namespace。

这个.pub-cache文件下的内容在flutter clean下是不会被销毁的。如果想一劳永逸,则建议要么换最新的三方,要么就是用三方置入的方式。

尽量不要一次性改动很多的三方,以免产生各方依赖及缓存问题。

2------------ios

iOS部分:相比gradle的升级很多问题来说,ios的相对少很多,更新的较多的三方只会有一个比较麻烦的问题就是

许久不升级,当flutter dart 还有各种三方的widght都升级时候,这个时候flutter pub get 没问题了, pod update / install都没问题了 但是运行到iPhone真机上的时候就会报错:各种三方的问题。如下

Framework 'flutter_image_compress' not found

这个时候去打开去新的Xcode里找到build setttings 搜索:Other Linker Flags 看到一堆引用的三方删除掉原来的链接引用即可。

http://www.dtcms.com/a/349363.html

相关文章:

  • 机器视觉的3C玻璃盖板丝印应用
  • KeepAlived+Haproxy实现负载均衡(SLB)
  • window显示驱动开发—混合系统 DDI 和 dList DLL 支持
  • Shell 循环编程:for 与 select 轻松入门
  • HTTP 与 HTTPS 深度解析:从原理到实际应用
  • Kubernetes (K8s)入门指南:Docker之后,为什么需要容器编排?
  • 安全合规:AC(上网行为安全)--下
  • LeetCode热题100--102. 二叉树的层序遍历--中等
  • 什么是JSON-RPC 2.0,在项目中应该怎么使用
  • 09-数据存储与服务开发
  • GPIO子系统自主实现(简单版)
  • C++ static 关键字面试深度解析
  • 匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率
  • 【每天一个知识点】大模型训推一体机
  • RK3128 Android 7.1 进入深度休眠流程分析
  • Apache Maven 3.1.1 (eclipse luna)
  • Portswigger靶场之 Blind SQL injection with time delays通关秘籍
  • 维度建模 —— 雪花模型 和 星型模型的优缺点
  • 异常记录-神通数据库-已解决
  • go-redis库使用总结
  • jasperreports 使用
  • Vmware centos系统中通过docker部署dify,网络超时和磁盘容量解决方案
  • 解决getLocation获取当前的地理位置,报错:getLocation:fail auth deny及方法封装
  • 容易忽视的TOS无线USB助手配网和接入USB使用: PC和TOS-WLink需要IP畅通,
  • 社群团购平台与定制开发开源AI智能名片S2B2C商城小程序的融合创新研究
  • 解构 Spring Boot “约定大于配置”:从设计哲学到落地实践
  • 在Excel和WPS表格中拼接同行列对称的不连续数据
  • XC95144XL-10TQG144I Xilinx XC9500XL 高性能 CPLD
  • 信贷模型域——清收阶段模型(贷后模型)
  • 关于内存泄漏的一场讨论