【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置

噩梦终结:Flutter 配安卓、鸿蒙、iOS 真机调试环境

问题背景

很多开发者在配置 Flutter 项目环境时遇到困难,尤其是在处理 Android、鸿蒙和 iOS 真机调试环境时。卓伊凡最近接手了一个项目,发现很多“专业程序员”在环境搭建上花费了大量时间,甚至有人花了三天时间才安装好环境,还有人花了一周时间配置打包环境。这些问题不仅浪费时间,还影响了项目的进度。

对于 Flutter 开发者来说,配置环境是一个常见的痛点,尤其是在处理 Gradle、AGP、NDK 版本等问题时。很多开发者对这些工具的使用并不熟悉,导致项目无法顺利运行。本文将分享如何快速搭建 Flutter 项目的 Android 和 iOS 调试环境,并介绍如何使用 AppUploader 来简化 iOS 应用的打包和上传流程。

打包方法

Android 环境配置

  1. 打开 Android Studio
    首先,用 Android Studio 打开 Flutter 项目中的 android 目录。

  2. 配置 local.properties 文件
    local.properties 文件中,指定 Flutter SDK 和 Android SDK 的路径:

    flutter.sdk=D:\\soft\\flutter
    sdk.dir=D\:\\soft\\Android\\sdk
    
  3. 安装 NDK
    如果你的项目需要使用 NDK,可以通过 Android Studio 的 SDK Manager 安装。安装完成后,在 local.properties 文件中添加 NDK 路径:

    ndk.dir=D\:\\soft\\Android\\sdk\\ndk\\28.0.13004108
    
  4. 配置 build.gradle 文件
    build.gradle 文件中,确保 NDK 版本与 local.properties 中的版本一致:

    android {namespace "com.example.ff_flutter"ndkVersion "28.0.13004108"compileSdkVersion 34defaultConfig {applicationId "com.example.ff_flutter"minSdk 31targetSdk 34versionCode 1versionName "1.0"}
    }
    
  5. 清理并重新构建项目
    在终端中运行以下命令,清理项目并重新获取依赖:

    flutter clean
    flutter pub get
    

iOS 环境配置

对于 iOS 开发者来说,配置环境同样是一个挑战。幸运的是,AppUploader 可以帮助你简化 iOS 应用的打包和上传流程。AppUploader 是一款专为 iOS 开发者设计的工具,支持自动打包、签名和上传应用到 App Store,极大地提高了开发效率。

  1. 安装 AppUploader
    你可以从 AppUploader 官网下载并安装该工具。安装完成后,打开 AppUploader 并登录你的 Apple 开发者账号。

  2. 配置项目
    在 AppUploader 中,选择你的 Flutter 项目,并配置应用的 Bundle ID、版本号等信息。AppUploader 会自动检测项目的配置,并生成相应的签名文件。

  3. 打包并上传应用
    点击“打包”按钮,AppUploader 会自动打包你的应用,并生成 IPA 文件。打包完成后,你可以直接通过 AppUploader 将应用上传到 App Store,无需手动操作 Xcode。

常见问题及解决方案

1. Flutter SDK 路径未指定

如果你在同步项目时遇到以下错误:

A problem occurred evaluating settings 'android'.
flutter.sdk not set in local.properties.

解决方案:
local.properties 文件中指定 Flutter SDK 的路径:

flutter.sdk=D:\\soft\\flutter

2. NDK 版本不匹配

如果你在构建项目时遇到以下错误:

Could not get unknown property 'ndkVersion' for object of type org.gradle.internal.extensibility.DefaultExtraPropertiesExtension.

解决方案:
local.properties 文件中指定 NDK 路径,并在 build.gradle 文件中配置正确的 NDK 版本。

3. 测试任务未找到

如果你在运行测试时遇到以下错误:

Task 'testClasses' not found in project ':app'.

解决方案:
build.gradle 文件中手动添加 testClasses 任务:

task testClasses {dependsOn compileTestJava
}

总结

通过本文,你可以快速搭建 Flutter 项目的 Android 和 iOS 调试环境,并解决常见的构建问题。对于 iOS 开发者来说,AppUploader 是一个强大的工具,能够帮助你简化应用的打包和上传流程,节省大量时间。希望本文能帮助你更好地理解 Flutter 项目的环境配置,并提升开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程状态:Linux的幕后指挥管理,穿越操作系统进程的静与动

文章目录 引言:进程的生命与状态:动与静的交响曲一、操作系统中的进程状态概述1.1 经典的进程状态模型1.2 进程状态转换图 二、Linux操作系统中的进程状态2.1 Linux进程状态的分类2.2 各状态的详细解释 2.3 Linux进程状态表2.4 使用ps查看进程状态三、进…

MOSN(Modular Open Smart Network)-05-MOSN 平滑升级原理解析

前言 大家好,我是老马。 sofastack 其实出来很久了,第一次应该是在 2022 年左右开始关注,但是一直没有深入研究。 最近想学习一下 SOFA 对于生态的设计和思考。 sofaboot 系列 SOFAStack-00-sofa 技术栈概览 MOSN(Modular O…

基于深度学习的图像超分辨率技术研究与实现

一、引言 在数字图像处理领域,图像超分辨率技术一直是一个备受关注的热点话题。随着人们对图像质量要求的不断提高,如何将低分辨率图像提升到高分辨率,同时保持图像的细节和清晰度,成为了一个极具挑战性的问题。传统的图像超分辨率…

构建高可用性西门子Camstar服务守护者:异常监控与自愈实践

在智能制造领域,西门子Camstar作为领先的MES系统承载着关键生产业务。但在实际运维中,我们发现其服务常因数据库负载激增(如SQL阻塞链超时)或应用服务器资源耗尽(CPU峰值达90%以上)导致服务不可用。传统人工干预方式平均故障恢复时间长达47分钟,这对连续生产场景构成了严…

Java Collection API增强功能系列之二 List.of、Set.of、Map.of

Java 9集合工厂方法:用List.of、Set.of、Map.of创建安全不可变集合 Java 9引入了革命性的集合工厂方法List.of、Set.of和Map.of,彻底改变了开发者创建小型不可变集合的方式。这些方法不仅语法简洁,还在安全性和性能上实现了质的飞跃。本文将…

网络通信微服务

网络通信 VPN 服务器分配内网 IP,加密所有流量,以使用外网访问内网资源 使用了VPN只是第一关,只进入了人家的大厅,只可以访问公共服务(像是只可以在人间公司的大厅里溜达),若想要访问人家提供的高级服务&a…

arm之s3c2440的I2C的用法

基础概念 IC(Inter-Integrated Circuit)又称I2C,是是IICBus简称,所以中文应该叫集成电路总线。 IIC的总线的使用场景,所有挂载在IIC总线上的设备都有两根信号线,一根是数据线SDA,另一 根是时钟…

算法 | 蜣螂优化算法原理,引言,公式,算法改进综述,应用场景及matlab完整代码

蜣螂优化算法(Dung Beetle Optimizer, DBO)详解 1. 算法原理 蜣螂优化算法(DBO)是一种基于自然界蜣螂行为的元启发式优化算法,灵感来源于蜣螂的滚球、繁殖、觅食和偷窃行为。其核心思想是通过模拟蜣螂在复杂环境中的协作与竞争机制,解决全局优化问题。关键行为模拟: 滚球…

uniapp开发实战自定义组件形式实现自定义海报功能

在 UniApp 中实现自定义海报功能,可以通过 Canvas 来绘制海报。Canvas 提供了丰富的绘图 API,可以精确控制文字、图片和二维码的位置。下面是一个完整的示例,展示如何创建一个自定义海报组件。 项目结构 假设你的项目结构如下: project-root/ ├── pages/ │ └──…

dockerfile构建镜像方式

在 Docker 中&#xff0c;可使用 docker build 命令依据 Dockerfile 构建镜像。下面为你详细介绍构建镜像的具体方式。 基本构建命令 若要构建镜像&#xff0c;需在包含 Dockerfile 的目录下执行 docker build 命令。基本语法如下&#xff1a; bash docker build -t <镜像…

STM32F103_LL库+寄存器学习笔记10 - DMA传输过半+DMA传输完成中断实现DMA串口接收“双缓冲“

导言 《[[STM32F103_LL库寄存器学习笔记09 - DMA串口接收与DMA串口发送&#xff0c;串口接收空闲中断]]》上一章节完成DMA发送与接收。此时&#xff0c;有一个致命的问题可能会导致数据包丢失。原因是USART1接收只开启了接收空闲中断(IDLE)&#xff0c;DMA在连续模式下&#xf…

李宏毅机器学习笔记06 | 鱼和熊掌可以兼得的机器学习 - 内容接宝可梦

本章提要 深度学习可以在较少参数量的情况下得到比较低的loss&#xff1a; h a l l a r g min ⁡ h ∈ H L ( h , D a l l ) h^{all}arg \min_{h \in H}L(h,D_{all}) hallargminh∈H​L(h,Dall​) 引入 如何权衡模型的复杂程度 Tradeoff of Model Complexity 理论上&#…

java八股文之JVM

1.什么是程序计数器 程序计数器是 JVM 管理线程执行的“定位器”&#xff0c;记录每个线程当前执行的指令位置&#xff0c;确保程序流程的连续性和线程切换的准确性。线程私有的&#xff0c;每个线程一份&#xff0c;内部保存的字节码的行号。用于记录正在执行的字节码指令的地…

Android设计模式之观察者模式

一、定义&#xff1a;定义对象间一种一对多的依赖关系&#xff0c;使得每当一个对象改变状态&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新。 二、核心角色&#xff1a; Subject&#xff1a;抽象主题被观察的角色&#xff0c;管理观察者集合&#xff0c;提供注册…

海康gdb流程

gdb相关 在initrun.sh文件里加入&#xff0c;注意需要在hikauto起来之前 # 设置core dump大小 ulimit -c unlimited if [ $? -eq 0 ];then echo "core dump size set success" else echo -e "\33[31m core dump size set fail\33[0m" fi echo …

springBoot统一响应类型3.3版本

前言&#xff1a; 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往…

【空间变换】欧拉角与四元数

核心 欧拉角描述的是一种变换&#xff0c;只关注变换后的结果&#xff0c;不关注变换过程中的运动 而四元数不仅良好地表示了一种变换&#xff0c;也很好地表示了一种运动过程&#xff0c;又避免了万向节死锁Gimbal Lock变换顺序&#xff0c;是欧拉角变换的一部分&#xff0c;…

基于Linux下的MyBash命令解释器

项目介绍&#xff1a;⼀个⽤C语⾔实现的简单shell&#xff0c;可以接受⽤⼾输⼊的命令并执⾏操作&#xff0c;⽀持多管道和重 定向。 mybash---打造自己的命令解释器 目前我们Linux的系统默认的命令解释器是bash; 命令解释器&#xff08;也称为命令行解释器或shell&#xff0…

Linux常见使用场景

一、文件查看与内容操作 ​1. cat ​作用&#xff1a;查看文件内容&#xff08;一次性输出全部内容&#xff09;。​常用选项&#xff1a; -n&#xff1a;显示行号。-b&#xff1a;仅对非空行显示行号。 ​示例&#xff1a; cat file.txt # 查看文件内容 cat -n fil…

Ingredient-oriented Multi-Degradation Learning for Image Restoration论文阅读

摘要&#xff1a;重点在于关联多个任务本质的联系。 不同恢复任务的关联性很重要。 揭示退化现象的内在机理联系很有意义。 多合一的方法能在单一模型中处理多种退化问题&#xff0c;可扩展性较差。 成分导向范式挖掘不同图像退化现象背后的物理规律或特征模式。 成分导向退化重…