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

【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 项目的环境配置,并提升开发效率。

相关文章:

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

噩梦终结:Flutter 配安卓、鸿蒙、iOS 真机调试环境 问题背景 很多开发者在配置 Flutter 项目环境时遇到困难,尤其是在处理 Android、鸿蒙和 iOS 真机调试环境时。卓伊凡最近接手了一个项目,发现很多“专业程序员”在环境搭建上花费了大量时…...

React 中React.memo的作用,如何利用它进行组件性能优化?

大白话React 中React.memo的作用,如何利用它进行组件性能优化? React.memo 是啥玩意儿 在 React 里,组件渲染是很频繁的事儿。每次父组件状态变了,子组件就可能会重新渲染,哪怕子组件的 props 压根儿没变化。这就好比…...

Python实现图片文字识别-OCR

PaddleOCR是由百度飞桨(PaddlePaddle)团队开发的OCR工具库,它包含超轻量级的中文OCR模型,支持多种语言和复杂情况下的文字识别。 pip install paddlepaddle paddleocr使用:已知我的图片是 img.png from paddleocr imp…...

MCP Server 实现一个 天气查询

​ Step1. 环境配置 安装 uv curl -LsSf https://astral.sh/uv/install.sh | shQuestion: 什么是 uv 呢和 conda 比有什么区别? Answer: 一个用 Rust 编写的超快速 (100x) Python 包管理器和环境管理工具,由 Astral 开发。定位为 pip 和 venv 的替代品…...

第38周:文献阅读

目录 摘要 Abstract 文献阅读 问题引入 研究背景 研究意义 研究目的 相关工作 自回归循环网络 基于 GAN 的序列生成方法 时间序列表示学习 创新点 提出模型 基本原理 代码实现 实验研究 实验1——基准和评估 实验2——不同类型的时间序列数据 实验3——…...

CD19.【C++ Dev】类和对象(10) 日期类对象的成员函数(日期+天数)

目录 日期天数 需要考虑的几个问题 1.天数加在日上,有可能会溢出,需要进位 2.对月进位,也有可能导致月会溢出,需要进位 3.对年进位,需要考虑是否为闰年 代码设计 取得指定月的天数GetMonthDay函数 方法1:if判断或switch/case 方法2:查表 版本1 版本2 operator 初始…...

Linux安装MySQL数据库并使用C语言进行数据库开发

目录 一、前言 二、安装VMware运行Ubuntu 1.安装VMware 2.使用VMware打开Ubuntu 三、配置VMware使用网卡 1.添加NAT网卡 四、Linux下安装MySQL数据库 五、安装MySQL开发库 六、演示代码 sql_connect.c sql_connect.h main.c中数据库相关代码 结尾 一、前言 由于最…...

GStreamer —— 3.1、Qt+GStreamer制作多功能播放器,支持本地mp4文件、rtsp流、usb摄像头等(可跨平台,附源码)

🔔 GStreamer 相关音视频技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中…) 运行效果...

如何在根据名称或id找到json里的节点以及对应的所有的父节点?

函数如下: 数据如下: [{ "name": "数据看板", "id": "data", "pageName": "tableeauData", "list": [] }, { "name": "审计模块", "id": &quo…...

IP第一次笔记

一、TCP协议 第0步:如果浏览器和host文件存在域名对应的P地址记录关系 则直接封装HTTP数据报文,如果没有记录则触发DNS解析获 取目标域名对应的P地址 第一步:终端主机想服务器发起TCP三次握手 1.TCP的三次握手 2.传输网页数据 HTTP --应用层…...

手机硬件检测详解:从版本信息到相机功能的全面指南

手机硬件检测概述 接下来,我们将为您提供一份详尽的手机硬件检测指南,涵盖三十项关键内容,助您轻松掌握手机硬件的检测技巧。对于开发者而言,在测试手机硬件性能时,可以结合使用克魔开发助手(Keymob&#…...

大数据学习(86)-Zookeeper去中心化调度

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…...

05-SpringBoot3入门-整合SpringMVC(配置静态资源、拦截器)

1、说明 在01-SpringBoot3入门-第一个项目-CSDN博客中,其实就已经整合了SpringMVC。下面讲解怎么配置静态资源和拦截器 2、配置静态资源 命名:static(文件夹) 位置:src/main/resources 编写一个html文件 访问 http:/…...

大数据学习(88)-zookeeper实现的高可用(HA)

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…...

自然语言处理(5)—— 中文分词

中文分词的基本原理及实现 1. 什么是词2. 基本原理3. 发展趋势:多数场景无需显式分词 信息处理的目标是使用计算机能够理解和产生自然语言。而自然语言理解和产生的前提是对语言能够做出全面的解析。 汉语词汇是语言中能够独立运用的最小的语言单位,是语…...

MP4音视频格式

1.MP4 MP4是一种用于封装音视频/字幕/图片/章节信息等数据的多媒体容器格式,是MPEG-4系列的成员之一 2.文件结构 MP4由一层层的嵌套Box(atom)组成 [ size (4 bytes) ][ type (4 bytes)][ payload (嵌套box或者数据) ] 3.常见Box 类型名称…...

NO.59十六届蓝桥杯备战|基础算法-前缀和|一维前缀和|最大子段和|二维前缀和|激光炸弹(C++)

前缀和与差分的核⼼思想是预处理,可以在暴⼒枚举的过程中,快速给出查询的结果,从⽽优化时间复杂度。 是经典的⽤空间替换时间的做法 前缀和 解法1:暴力模拟,q有几次,就套几次for循环 解法2:前…...

Node.js 模块加载机制--详解

目录 Node.js 模块加载机制详解 1. 什么是模块? 2. 模块加载顺序 3. 核心模块加载 4. 自定义模块加载 5. 目录作为模块(index.js) 6. require.resolve() 查找模块路径 7. module 对象解析 8. require.cache 机制(避免重复…...

Live555+Windows+MSys2 编译Androidso库和运行使用(三,实战篇)

文章目录 先上效果图VLC中打开日志权限cmakelist 和gradle建议直接去git查看源代码ui下一篇视频预览和采集 先上效果图 VLC中打开 日志 com.mq.qrtspclient E mystream stream, from the file /storage/emulated/0/Android/data/com.mq.qrtspclient/files/…...

验证码通过“Canvas 绘制”与“Base64 图片”渲染两种不同的实现方式显示

文章目录 🎉验证码通过“Canvas 绘制”与“Base64 图片”渲染两种不同的实现方式显示一、Canvas 绘制:接口回调“字符串”通过绘制的方式显示到前端✨1、前端代码(Canvas 绘制):包含验证码区域、绘制验证码方法&#x…...

FALL靶场通关攻略

1,下载好靶机后打开,通过kali扫描靶机ip和端口,得到靶机ip为192.168.50.144 2,扫描目录 3,访问靶机 4,访问扫描到的test.php,得到缺少GET请求参数的提示 5,使用FUZZ来扫出参数为file 6&#xff…...

(学习总结31)Linux 进程地址空间与进程控制

Linux 进程地址空间与进程控制 进程地址空间Linux 进程地址空间分布虚拟地址空间和页表创建子进程与写时拷贝权限访问缺页中断 Linux 虚拟内存管理mm_struct 内存描述符区域划分vm_area_struct 独立虚拟内存区域 虚拟地址空间的作用 进程控制进程创建fork 函数介绍写时拷贝作用…...

基于Springboot的网上订餐系统 【源码】+【PPT】+【开题报告】+【论文】

网上订餐系统是一个基于Java语言和Spring Boot框架开发的Web应用,旨在为用户和管理员提供一个便捷的订餐平台。该系统通过简化餐饮订购和管理流程,为用户提供快速、高效的在线订餐体验,同时也为管理员提供完善的后台管理功能,帮助…...

Axure设计之中继器表格——拖动行排序教程(中继器)

一、原理介绍 在Axure中实现表格行的拖动排序,主要依赖于中继器的排序事件。然而要实现拖动效果,就必须结合动态面板,因为动态面板可以设置拖动事件,之所以使用动态面板或许是因为它可以更灵活地处理位置变化。用户拖动行时&…...

GAUSSDB 分布式存储机制深度解析

GAUSSDB 分布式存储机制深度解析 一、核心机制概览 GAUSSDB 的分布式存储通过 数据分片、多副本管理 和 全局事务控制 实现高可用与水平扩展。以下为关键机制详解: 二、数据分片(Sharding) 1. 分片策略 GAUSSDB 支持多种分片规则&#xff…...

【NLP 46、大模型技术发展】

目录 一、ELMo 2018 训练目标 二、GPT-1 2018 训练目标 三、BERT 2018 训练目标 四、Ernie —— baidu 2019 五、Ernie —— Tsinghua 2019 六、GPT-2 2019 七、UNILM 2019 八、Transformer - XL & XLNet 2019 1.模型结构 Ⅰ、循环机制 Recurrence Mechanism Ⅱ、相对位置…...

汽车加气站操作工证书报考条件是什么?

关于汽车加气站操作工的资格证书: 一、核心证书要求 CNG充装人员上岗证 这是加气站加气工的核心资质证书,需通过专业培训并考核。该证书由相关部门颁发,证明持证人具备从事CNG(压缩天然气)充装操作的专业技能&#xf…...

材质及制作笔记

基本流程: 建中模——zb雕刻高模——maya拓扑低模——拆uv——sp烘焙贴图——sp绘制材质——渲染 1 材质贴图: diffuse/albedo/basecolor:漫反射 reflection/specular:反射 metalness:金属度 glossiness&#xf…...

Opencv 图像读取与保存问题

本文仅对 Opencv图像读取与保存进行阐述,重在探讨图像读取与保存过程中应注意的细节问题。 1 图像读取 首先看一下,imread函数的声明: // C: Mat based Mat imread(const string& filename, int flags1 );// C: IplImage based IplImage*…...

Flutter 2025生态全景:从跨端到嵌入式开发的新机遇

一、技术演进:从"一次编写多端运行"到"全场景覆盖" 1.1 渲染引擎革命:Impeller 2.0的性能突破 // 启用Impeller的配置示例(android/app/build.gradle) def enableImpeller true android {defaultConfig {…...

Idea中诡异的文件编码问题: 设置fileCodeing为UTF8但不生效

在fileCoding配置了编码utf-8,右下角的文件里编码格式却是ISO-8859-1,git后到远程仓库里却是ISO-8859-1的乱码,怎么修改都不生效,重启也不行,恶心的不行。 最后发现修复方案是: 1. 先随便做个变更&#x…...

Linux中逻辑卷的使用、扩容与磁盘配额

目录 一.逻辑卷概述 1.普通分区的优缺点 2.逻辑卷的优点 3.逻辑卷概述 二.逻辑卷的创建 1.逻辑卷相关命令 2.创建步骤 三.逻辑卷的扩容 1.扩容步骤 四.磁盘配额 1.概念及注意点 2.使用条件 3.相关命令 一.逻辑卷概述 1.普通分区的优缺点 普通分区优点&#xff1a…...

Java版Manus实现来了,Spring AI Alibaba发布开源OpenManus实现

此次官方发布的 Spring AI Alibaba OpenManus 实现,包含完整的多智能体任务规划、思考与执行流程,可以让开发者体验 Java 版本的多智能体效果。它能够根据用户的问题进行分析,操作浏览器,执行代码等来完成复杂任务等。 项目源码及…...

关于IP免实名的那些事

IP技术已成为个人与企业保护隐私、提升网络效率的重要工具。其核心原理是通过中介服务器转发用户请求,隐藏真实IP地址,从而实现匿名访问、突破地域限制等目标。而“免实名”代理IP的出现,进一步简化了使用流程,用户无需提交身份信…...

从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.2.3实战案例:在笔记本电脑上运行轻量级LLM

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 实战案例:在笔记本电脑上运行轻量级LLM2.2.3 模型架构设计与实现1. 环境与工具准备1.1 硬件要求1.2 软件栈选择2. 轻量级模型架构设计2.1 模型参数配置2.2 关键技术优化3. 实战流程3.1 数据准备流程3.2…...

Labview信号分析系统(含报告)

1.摘要 本文详细介绍了基于LabVIEW的轴承故障信号分析系统的设计与实现。该系统以凯斯西储大学轴承驱动端的振动信号为研究对象,涵盖了正常信号以及内圈、滚珠、外圈三种故障信号的分析。系统可以对信号进行滤波、时域分析、频域分析和时频域分析等。系统的功能如下…...

基于FastAPI与Kimi AI的智能聊天应用开发实践

一、项目概述 本文介绍一个基于现代Web技术栈的智能对话系统,前端采用响应式设计实现聊天界面,后端通过FastAPI框架构建高性能API服务,集成Moonshot AI大语言模型实现智能对话功能。系统具备完整的消息交互流程,支持参数定制化配…...

Android 蓝牙/Wi-Fi通信协议之:经典蓝牙(BT 2.1/3.0+)介绍

在 Android 开发中,经典蓝牙(BT 2.1/3.0)支持多种协议,其中 RFCOMM/SPP(串口通信)、A2DP(音频流传输)和 HFP(免提通话)是最常用的。以下是它们在 Android 中的…...

介绍FRAMES:一个统一的检索增强生成评估框架

引言 大型语言模型(LLMs)在认知任务上取得了显著进步,检索增强生成(RAG)技术成为提升模型性能的重要方法。然而,现有的评估方法往往孤立地测试模型的检索能力、事实性和推理能力,无法全面反映模…...

云钥科技多通道工业相机解决方案设计

项目应用场景分析与需求挑战 1. 应用场景 ‌目标领域‌:工业自动化检测(如精密零件尺寸测量、表面缺陷检测)、3D立体视觉(如物体建模、位姿识别)、动态运动追踪(如高速生产线监控)等。 ‌核心…...

微信小程序逆向开发

一.wxapkg文件 如何查看微信小程序包文件: 回退一级 点击进入这个目录 这个就是我们小程序对应的文件 .wxapkg概述 .wxapkg是微信小程序的包文件格式,且其具有独特的结构和加密方式。它不仅包含了小程序的源代码,还包括了图像和其他资源文…...

Debian ubuntu源

配置文件路径 /etc/apt/sources.list 阿里 deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs) main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs) main restricted universe multiverse deb http://mirrors.aliyun.…...

几个工作中常用的网站

1.思维导图流程图 在线版 ProcessOn思维导图流程图-在线画思维导图流程图_在线作图实时协作 2.编码转换及报文格式化 ESJSON在线工具首页(ES JSON在线工具) JSON在线解析格式化验证 - JSON.cn 3.AI助手 通义 - 你的个人AI助手 文心一言 谷灵AI,你的工作好帮手…...

《Apipost如何超越Postman与Apifox?SocketIO调试工具横评》

实时通信调试工具可能已「过时」!许多主流工具如Apifox不支持SocketIO协议,导致调试效率低下。而Apipost作为国产工具,原生支持SocketIO,提供自定义事件管理、连接状态可视化等功能,极大提升了实时通信开发的效率和准确…...

为什么要将项目部署到外部tomcat

一、是什么 指将你的Java Web应用程序(如WAR包)安装并运行在一个独立安装的、位于项目外部的Tomcat服务器上,而不是使用内嵌的或开发环境自带的服务器。 外部Tomcat 指独立安装的Tomcat服务器(如从Apache官网下载的Tomcat&#…...

小迪安全109-php模型动态调试,反序列化,变量覆盖,tp框架,原生pop链

案例一 原生代码变量覆盖,duomicms 变量覆盖是什么 这个时候为什么会输出xiaodi呢 就是因为$ab所以$$a$b 所以就让$bxiaodi 搞不到源码,看老师的学吧 这一般在web端页面是看不到,也不好发现,代码可以看关键字和函数 例如$$这…...

Python 练习项目:MBTI 命令行测试工具

在当今数字化的时代,心理测试工具越来越受到欢迎,它们帮助人们更好地了解自己,做出更明智的职业选择,甚至改善人际关系。MBTI(迈尔斯-布里格斯性格分类法)是其中一种广为人知的人格测试,通过评估个人在四个维度上的偏好(外向-内向、实感-直觉、理智-情感、判断-理解),…...

zynq7000 + ucos3 + lwip202_v1_2调试过程

1 现在裸机应用上验证lwip 跑起来可能会报错,看下面的链接解决 zynq 网卡Phy setup error问题 zynq 网卡Phy setup error问题-CSDN博客 2 ping同以后,在zynq上添加ucos系统 链接如下: ZYNQ移植uCOSIII_zynq ucos-CSDN博客 3 移植lwip协议…...

Oracle数据库数据编程SQL<2.2 DDL 视图、序列>

目录 一、Oracle 视图(Views) (一) Oracle 视图特点 (二)Oracle 视图创建语法 关键参数: (三)Oracle 视图类型 1、普通视图 2、连接视图(可更新) 3、对象视图 4…...

关于bug总结记录

1、vs中出现bug error C1083:无法打开文件 链接:vs中出现bug error C1083:无法打开文件_vs20151083错误解决方法-CSDN博客 2、 VS小技巧:系统却提示:示msvcp120.dll丢失 链接:VS小技巧:系统却提示:示msvc…...