【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置
噩梦终结:Flutter 配安卓、鸿蒙、iOS 真机调试环境
问题背景
很多开发者在配置 Flutter 项目环境时遇到困难,尤其是在处理 Android、鸿蒙和 iOS 真机调试环境时。卓伊凡最近接手了一个项目,发现很多“专业程序员”在环境搭建上花费了大量时间,甚至有人花了三天时间才安装好环境,还有人花了一周时间配置打包环境。这些问题不仅浪费时间,还影响了项目的进度。
对于 Flutter 开发者来说,配置环境是一个常见的痛点,尤其是在处理 Gradle、AGP、NDK 版本等问题时。很多开发者对这些工具的使用并不熟悉,导致项目无法顺利运行。本文将分享如何快速搭建 Flutter 项目的 Android 和 iOS 调试环境,并介绍如何使用 AppUploader 来简化 iOS 应用的打包和上传流程。
打包方法
Android 环境配置
-
打开 Android Studio
首先,用 Android Studio 打开 Flutter 项目中的android目录。 -
配置
local.properties文件
在local.properties文件中,指定 Flutter SDK 和 Android SDK 的路径:flutter.sdk=D:\\soft\\flutter sdk.dir=D\:\\soft\\Android\\sdk -
安装 NDK
如果你的项目需要使用 NDK,可以通过 Android Studio 的 SDK Manager 安装。安装完成后,在local.properties文件中添加 NDK 路径:ndk.dir=D\:\\soft\\Android\\sdk\\ndk\\28.0.13004108 -
配置
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"} } -
清理并重新构建项目
在终端中运行以下命令,清理项目并重新获取依赖:flutter clean flutter pub get
iOS 环境配置
对于 iOS 开发者来说,配置环境同样是一个挑战。幸运的是,AppUploader 可以帮助你简化 iOS 应用的打包和上传流程。AppUploader 是一款专为 iOS 开发者设计的工具,支持自动打包、签名和上传应用到 App Store,极大地提高了开发效率。
-
安装 AppUploader
你可以从 AppUploader 官网下载并安装该工具。安装完成后,打开 AppUploader 并登录你的 Apple 开发者账号。 -
配置项目
在 AppUploader 中,选择你的 Flutter 项目,并配置应用的 Bundle ID、版本号等信息。AppUploader 会自动检测项目的配置,并生成相应的签名文件。 -
打包并上传应用
点击“打包”按钮,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 真机调试环境时。卓伊凡最近接手了一个项目,发现很多“专业程序员”在环境搭建上花费了大量时…...
C++11QT复习 (六)
类型转换函数和类域 **Day6-3 类型转换函数和类域****1. 类型转换函数(Type Conversion Functions)****1.1 概述****1.2 代码示例****1.3 关键优化** **2. 类域(Class Scope)****2.1 作用域 vs 可见域****2.2 代码示例****2.3 关键…...
区块链技术在投票系统中的应用:安全、透明与去中心化
区块链技术在投票系统中的应用:安全、透明与去中心化 【引言】 近年来,电子投票系统因其便捷性受到广泛关注,但随之而来的安全问题也屡见不鲜,如选票篡改、重复投票、数据泄露等。如何确保投票的公平性、透明度和安全性? 区块链技术或许是解决方案之一! 区块链的 去中…...
CTF类题目复现总结-[MRCTF2020]ezmisc 1
一、题目地址 https://buuoj.cn/challenges#[MRCTF2020]ezmisc二、复现步骤 1、下载附件,得到一张图片; 2、利用010 Editor打开图片,提示CRC值校验错误,flag.png应该是宽和高被修改了,导致flag被隐藏掉;…...
MetInfo6.0.0目录遍历漏洞原理分析
所需进行代码审计的文件路径: C:\phpStudy\WWW\MetInfo6.0.0\include\thumb.php C:\phpStudy\WWW\MetInfo6.0.0\app\system\entrance.php C:\phpStudy\WWW\MetInfo6.0.0\app\system\include\class\load.class.php C:\phpStudy\WWW\MetInfo6.0.0\app\system\include…...
linux打包前端vue,后端springboot项目
第一步先对整个项目进行通过maven进行clean在进行compile 第二步直接进行打包package和install都可以 第三部把对应的jar放到服务器上 把jar包放到服务器上某个地址下,然后cd到这个目录下,然后执行命令 nohup java -jar ruoyi-admin.jar > springbo…...
Elasticsearch:使用 AI SDK 和 Elastic 构建 AI 代理
作者:来自 Elastic Carly Richmond 你是否经常听到 AI 代理(AI agents)这个词,但不太确定它们是什么,或者如何在 TypeScript(或 JavaScript)中构建一个?跟我一起深入了解 AI 代理的概…...
SQLAlchemy 支持特殊字符
postgresql 实践 pydantic 实践(一)基础 pydantic 实践(二)数据校验 SQLAlchemy 介绍与实践 SQLAlchemy 支持特殊字符 SQLAlchemy 支持特殊字符 1. 字符集介绍分析2. MySQL 支持特殊字符2.1. 更新 MySQL 字符集为 utf8mb42.2 更新…...
Docker 快速入门指南
Docker 快速入门指南 1. Docker 常用指令 Docker 是一个轻量级的容器化平台,可以帮助开发者快速构建、测试和部署应用程序。以下是一些常用的 Docker 命令。 1.1 镜像管理 # 搜索镜像 docker search <image_name># 拉取镜像 docker pull <image_name>…...
计算机网络 - OSI 七层模型
OSI 七层模型 OSI(Open System Interconnection,开放系统互联)模型由 ISO(国际标准化组织) 制定,目的是为不同计算机网络系统之间的通信提供一个标准化的框架。它将网络通信划分为 七个层次,每…...
如何调整yarn.nodemanager.vmem-pmem-ratio参数?
调整 yarn.nodemanager.vmem-pmem-ratio 参数的步骤如下: 1. 打开 YARN 配置文件 找到 yarn-site.xml 文件,该文件通常位于 Hadoop 配置目录中,例如 /etc/hadoop/conf 或 /opt/module/hadoop-3.1.3/etc/hadoop。 2. 找到并修改 yarn.nodemana…...
自顶向下学习K8S--部署Agones
本文在本人博客,原文地址:http://viogami.tech/index.php/blog/346/ 我是gopher,离不开云原生,自然也逃不了理解docker和K8S这俩。今天抽空想玩下agones,进而对K8S有实践性的理解。 学一个新事物从底层理论学肯定是最…...
unity中Xcharts图表鼠标悬浮表现异常
鼠标悬浮在面板附近,只显示单独的一个项目 而且无论鼠标如何移动,根本没有效果。 解决方案: 需要在对应的Canvas上绑定主相机才可以 鼠标移动到项目上就有信息展示了...
2025年最新自动化/控制保研夏令营预推免面试真题分享(东南大学苏州校区/华东理工/南航/天大)
笔者来2021级本科自动化专业,以下部分将介绍我在夏令营以及预推免期间发生经历和问题 东南大学苏州校区蒙纳士大学联培 东南大学苏州校区的项目算是一个比较小众的项目,是第一年在苏州校区,二三年到南京校区找导师(不提供住宿自…...
【Java SE】包装类 Byte、Short、Integer、Long、Character、Float、Double、Boolean
参考笔记:java 包装类 万字详解(通俗易懂)_java包装类-CSDN博客 目录 1.简介 2.包装类的继承关系图 3.装箱和拆箱 3.1 介绍 3.2 手动拆装箱 3.3. 自动拆装箱 4.关于String类型的转化问题 4.1 String类型和基本类型的相互转化 4.1.1 String —…...
口腔种植全流程AI导航系统及辅助诊疗与耗材智能化编程分析
一、系统架构与编程框架设计 口腔种植全流程人工智能导航系统的开发是一项高度复杂的多学科融合工程,其核心架构需在医学精准性、工程实时性与临床实用性之间实现平衡。系统设计以模块化分层架构为基础,结合高实时性数据流与多模态协同控制理念,覆盖从数据采集、智能决策到…...
小林coding-10道Java集合面试题
1.数组与集合区别,用过哪些?说说Java中的集合?Java中的线程安全的集合是什么?Collections和Collection的区别?集合遍历的方法有哪些? 2.List?讲一下java里面list的几种实现,几种实现有什么不同ÿ…...
Java 集合中ArrayList与LinkedList的性能比较
一、需求: 头部插入:向列表头部插入10万个整数。随机访问:从列表中间位置连续获取1万个元素。头部删除:从列表头部连续删除10万个元素。 二、 使用ArrayList与LinkedList测试 //常量定义,用于测试操作的次数…...
SQL问题分析与诊断(8)——前提
8.1. 前提 与其他关系库类似,SQL Server中,当我们对存在性能问题的SQL语句进行分析和诊断时,除了获取该SQL语句本身外,还需要获取SQL语句相应的查询计划及其相关的数据环境。这里,所谓数据环境,具体是指SQ…...
漏洞发现:AWVS 联动 XRAY 图形化工具.(主动+被动 双重扫描)
漏洞发现:AWVS 联动 XRAY 图形化工具. 漏洞发现是网络安全领域的关键环节,指通过技术手段识别计算机系统、网络设备或软件中存在的设计缺陷、配置错误或代码漏洞的过程。这些漏洞可能被攻击者利用,导致数据泄露、服务中断或权限提升等风险。…...
上门家政小程序实战,从0到1解决方案
一、逻辑分析 上门家政小程序主要涉及用户端和服务端两大部分。用户端需要实现服务浏览、预约下单、订单跟踪等功能;服务端则要处理订单管理、服务人员管理、数据统计等任务。以下是详细的功能模块分析: 用户注册与登录:用户通过手机号或第三…...
Linux ping/telnet/nc命令
在Linux操作系统中,ping命令用于测试网络连接和发送数据包到目的主机。 然而,ping命令默认情况下只能测试IP地址和域名,而无法直接测试端口号。 ping www.baidu.comping 192.168.0.1 测试端口 如果你想测试特定端口是否开放并响应ÿ…...
Netty - 从Nginx 四层(TCP/UDP)流量中获取客户端真实/网络出口IP
文章目录 一、背景与原理1.1 问题场景网络架构影响分析1.1 客户端与Nginx之间存在的NAT/VPN1.2 Nginx与RPC服务之间的NAT 1.2 技术原理 二、环境配置验证2.1 Nginx配置2.2 版本要求 三、Netty服务端实现3.1 Pipeline配置(核心代码)3.2 协议处理器实现3.3…...
【持续集成和持续部署】
大致流程: 提交代码--拉取下来新代码并自动构建与部署--应用接口探活--执行自动化测试--输出自动化测试报告 一、持续集成(Continuous Integration,CI) 持续集成是一种软件开发实践,开发团队成员频繁地将代码集成到…...
Transformers中的BertConfig、BertModel详解
目录 一、功能 二、用法 1.导入BertConfig 2. 初始化默认配置 3.使用配置初始化模型 使用场景: 1.自定义小型BERT模型 2.加载预训练模型配置 从 Hugging Face 模型库加载 bert-base-uncased 的默认配置: 通过 BertConfig,你可以灵活定义…...
Ubuntu下载docker、xshell
配置:VMware虚拟机、Ubuntu24.04.1 首先打开vm启动虚拟机 下载docker Ubuntu启动之后,按CTRLALTT 打开终端 1.更新软件包索引并安装依赖 sudo apt-get updatesudo apt-get install \ca-certificates \curl \gnupg \lsb-release 2.添加docker官方的GP…...
迅为iTOP-RK3576人工智能开发板Android 系统接口功能测试
2.1 开机启动 开发板接通电源,并按下电源开关,系统即启动,在启动过程中,系统会显示下图中的开机画面,它们分别是 Android 系统启动时的 Logo 画面: 最后会显示如下解锁画面: 2.2 命令终端 将…...
Android设计模式之工厂方法模式
一、定义: 定义一个用于创建对象的接口,让子类决定实例化哪个类。 二、组成: 1.抽象工厂:工厂模式的核心,声明工厂方法,返回抽象产品对象。 2.具体工厂:实现工厂方法,返还具体的产品…...
端侧设备(如路由器、家庭网关、边缘计算盒子、工业网关等)的典型系统、硬件配置和内存大小
🏠 家用/工业级边缘设备硬件概览 类型常见设备示例CPU 架构内存范围操作系统类型家用路由器TP-Link、小米、华硕、OpenWrtARM Cortex-A7/A964MB~256MBOpenWrt / DD-WRT / Embedded Linux智能家庭网关华为、绿米、天猫精灵、Aqara HubARM Cortex-M/R128MB~512MBEmbedded Lin…...
office_word中使用宏以及DeepSeek
前言 Word中可以利用DeepSeek来生成各种宏,从而生成我们需要各种数据和图表,这样可以大大减少我们手工的操作。 1、Office的版本 采用的是微软的office2016,如下图: 2、新建一个Word文档 3、开启开发工具 这样菜单中的“开发工具…...
