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

ionic7 从安装 到 项目启动最后打包成 apk

报错处理

在打包的时候遇到过几个问题,这里记录下来两个
Visual Studio Code运行ionic build出错显示ionic : 无法加载文件
ionic 项目通过 android studio 打开报错 capacitor.settings.gradle 文件不存在

说明

由于之前使用的是 ionic 3,当时打包的方式使用的是 cordova 打包,虽然现在也还是可以使用 cordova 打包,但是官方已经不推荐。不推荐就有可能到时候在那个版本去掉。就像我们使用 java 的时候一样,新版会毙掉好多不推荐用法。

这里我们就使用最新的 Capacitor 来打包。

ionic 安装

好了,废话说了那么多了,现在开始干活了,由于我在操作的时候,很多都是直接看的官方的文档,下面会附带官方链接。

这里我使用的是 node: v18.20.0 这个版本,用 nvm 管理器安装的,npm 的版本为:10.5.0,使用下面的命令全局安装就好, 点击查看官方链接

# 安装
npm install -g @ionic/cli# 查看版本
ionic --version

查看ionic 版本

初始化 ionic 项目

我这边是建立了一个 ionicProjects 的文件夹,在这个文件夹里面,就放我所有的 ionic 的工程项目。
官方创建一个项目的链接地址:https://ionicframework.com/docs/developing/starting

# 进入工程项目
cd D:\workspace\IonicProjects# 创建一个工程,这里使用 tabs 模板,具体的可以看下官方的文档
ionic start ioinc-demo tabs

创建项目
后面的根据自己熟悉的语言来选择就好了,我是熟悉 angular 和 vue,这里我选择了 angular,并且这里我没选择 standalone 的模式,这个我也测试过,正常开发应用还是这个 NgModules 好点。接来下就等安装完就好了

安装 vs code 插件

这个是官方推荐的插件,下载这个,可以方便于我们操作,https://ionicframework.com/docs/intro/vscode-extension

安装插件

启动测试

我们安装完了之后,通过浏览器来访问下:

ionic serve

执行完上面的命令之后,会自动通过浏览器打开下面的页面,到这里我们就算项目搞完了
浏览器访问
另外,插件也可以启动
插件启动方式

添加 android 的插件 capacitor

在 ionic 中增加 Android 的平台插件,官方的链接地址:https://ionicframework.com/docs/developing/android,由于之前的 cordova 不再推荐了(这里我好想说,真的学不动了),所以我们看下 Capacitor。

官方截图

添加 android 平台

这里是需要在工程的路劲下面哈,不要瞎操作,会报错的,我是直接在 vs code 上面点击的安装
对可以对照官网看下:https://ionicframework.com/docs/developing/android

# 安装 
npm install @capacitor/android# 增加平台
npx cap add android# 使用 android studio 打开
npx cap open android

通过 vs code 中的插件操作

添加 android 项目,这里其实就是执行了上面的两块代码 :

  • npm install @capacitor/android
  • npx cap add android
    添加android 项目
    添加完了之后,显示为下面这样子:
    添加完成

项目编译

命令操作

需要打包成 apk 的话,需要先编译下,然后再通过 android studio 打开

// 先执行
ionic build// 需要执行npx cap sync android来同步Web资源到Capacitor的Android原生项目中。
// 这将确保Web更改被复制到Android项目的正确位置。
npx cap sync 
或者
npx cap sync android

在vs code 插件上面操作

当我们修改代码之后,需要重新打包的时候就按照顺序点一遍就好了,执行的命令和上面一样
插件操作

通过 android studio 打包

这里是讲怎么通过 android studio 打包,并没有涉及到如何安装 android studio。按照上面的操作 点击 “open in Android Studio” 之后,可以自动打开 Android Studio,这个时候会下载一堆的东西,耐心等待下 ,这里我不记得我等了多久,是需要一段时间的。
通过android 打开

开始打包

第一步:选择图中的操作

生成Apk

第二步:选择 apk

第二步

第三步:创建一个新的

第三步

第四步:选择key store path 的文件路劲

第四步

第五步:设置密码,注意:Certificate内必填一项,点击确认

第五步

第六步:

第六步

第七步:导出

在右下角可以看到这个提示,点击 locate
导出

这样子就可以看到 apk 了
apk

测试

这个时候,可以将导出来的 apk 传入到手机上面去,这样子就可以看到效果了。也可以通过 android 模拟器打开。
模拟器打开

相关文章:

ionic7 从安装 到 项目启动最后打包成 apk

报错处理 在打包的时候遇到过几个问题,这里记录下来两个 Visual Studio Code运行ionic build出错显示ionic : 无法加载文件 ionic 项目通过 android studio 打开报错 capacitor.settings.gradle 文件不存在 说明 由于之前使用的是 ionic 3,当时打包的…...

setInterval 定时任务执行时间不准验证

一般在处理定时任务的时候都使用setInterval间隔定时调用任务。 setInterval(() > {console.log("interval"); }, 2 * 1000);我们定义的是两秒执行一次,但是浏览器实际执行的间隔时间只多不少。这是由于浏览器执行 JS 是单线程模式,使用se…...

Stable Diffusion Model网站

Civitai Models | Discover Free Stable Diffusion Modelshttps://www.tjsky.net/tutorial/488https://zhuanlan.zhihu.com/p/610298913超详细的 Stable Diffusion ComfyUI 基础教程(一):安装与常用插件 - 优设网 - 学设计上优设 (uisdc.com)…...

K8S - 实现statefulset 有状态service的灰度发布

什么是灰度发布 Canary Release 参考 理解 什么是 滚动更新,蓝绿部署,灰度发布 以及它们的区别 配置partition in updateStrategy/rollingUpdate 这次我为修改了 statefulset 的1个yaml file statefulsets/stateful-nginx-without-pvc.yaml: --- apiVe…...

Qt 技术博客:深入理解 Qt 中的 delete 和 deleteLater 与信号槽机制

在 Qt 开发中,内存管理和对象生命周期的处理是至关重要的一环。特别是在涉及信号和槽机制时,如何正确删除对象会直接影响应用程序的稳定性。本文将详细讨论在使用 Qt 的信号和槽机制时,delete 和 deleteLater 的工作原理,并给出最…...

自学鸿蒙HarmonyOS的ArkTS语言<一>基本语法

一、一个ArkTs的目录结构 二、一个页面的结构 A、装饰器 Entry 装饰器 : 标记组件为入口组件,一个页面由多个自定义组件组成,但是只能有一个组件被标记 Component : 自定义组件, 仅能装饰struct关键字声明的数据结构 State:组件中的状态变量…...

【OpenGauss源码学习 —— (ALTER TABLE(列存修改列类型))】

ALTER TABLE(列存修改列类型) ATExecAlterColumnType 函数1. 检查和处理列存储表的字符集:2. 处理自动递增列的数据类型检查:3. 处理生成列的类型转换检查:4. 处理生成列的数据类型转换: build_column_defa…...

【大数据 复习】第7章 MapReduce(重中之重)

一、概念 1.MapReduce 设计就是“计算向数据靠拢”,而不是“数据向计算靠拢”,因为移动,数据需要大量的网络传输开销。 2.Hadoop MapReduce是分布式并行编程模型MapReduce的开源实现。 3.特点 (1)非共享式,…...

Zookeeper:节点

文章目录 一、节点类型二、监听器及节点删除三、创建节点四、监听节点变化五、判断节点是否存在 一、节点类型 持久(Persistent):客户端和服务器端断开连接后,创建的节点不删除。 持久化目录节点:客户端与Zookeeper断…...

生产级别的 vue

生产级别的 vue 拆分组件的标识更好的组织你的目录如何解决 props-base 设计的问题transparent component (透明组件)可减缓上述问题provide 和 inject vue-meta 在路由中的使用如何确保用户导航到某个路由自己都重新渲染?测试最佳实践如何制…...

kafka(五)spring-kafka(1)集成方法

一、集成 1、pom依赖 <!--kafka--><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId></dependency><dependency><groupId>org.springframework.kafka</groupId><artif…...

Java中的设计模式深度解析

Java中的设计模式深度解析 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在软件开发领域&#xff0c;设计模式是一种被广泛应用的经验总结和解决方案&#x…...

鸿蒙 HarmonyOS NEXT星河版APP应用开发—上篇

一、鸿蒙开发环境搭建 DevEco Studio安装 下载 访问官网&#xff1a;https://developer.huawei.com/consumer/cn/deveco-studio/选择操作系统版本后并注册登录华为账号既可下载安装包 安装 建议&#xff1a;软件和依赖安装目录不要使用中文字符软件安装包下载完成后&#xff0…...

[FreeRTOS 基础知识] 互斥访问与回环队列 概念

文章目录 为什么需要互斥访问&#xff1f;使用队列实现互斥访问休眠和唤醒机制环形缓冲区 为什么需要互斥访问&#xff1f; 在裸机中&#xff0c;假设有两个函数&#xff08;func_A, func_B&#xff09;都要修改a的值&#xff08;a&#xff09;&#xff0c;那么将a定义为全局变…...

音视频的Buffer处理

最近在做安卓下UVC的一个案子。正好之前搞过ST方案的开机广告&#xff0c;这个也是我少数最后没搞成功的项目。当时也有点客观原因&#xff0c;当时ST要退出机顶盒市场&#xff0c;所以一切的支持都停了&#xff0c;当时啃他家播放器几十万行的代码&#xff0c;而且几乎没有文档…...

【总结】攻击 AI 模型的方法

数据投毒 污染训练数据 后门攻击 通过设计隐蔽的触发器&#xff0c;使得模型在正常测试时无异常&#xff0c;而面对触发器样本时被操纵输出。后门攻击可以看作是特殊的数据投毒&#xff0c;但是也可以通过修改模型参数来实现 对抗样本 只对输入做微小的改动&#xff0c;使模型…...

Linux配置中文环境

文章目录 前言中文语言包中文输入法中文字体 前言 在Linux系统中修改为中文环境&#xff0c;通常涉及以下几个步骤&#xff1a; 中文语言包 更新源列表&#xff1a; 更新系统的软件源列表和语言环境设置&#xff0c;确保可以安装所需的语言包。 sudo apt update sudo apt ins…...

深入解析 iOS 应用启动过程:main() 函数前的四大步骤

深入解析 iOS 应用启动过程&#xff1a;main() 函数前的四大步骤 背景描述&#xff1a;使用 Objective-C 开发的 iOS 或者 MacOS 应用 在开发 iOS 应用时&#xff0c;我们通常会关注 main() 函数及其之后的执行逻辑&#xff0c;但在 main() 函数之前&#xff0c;系统已经为我们…...

textarea标签改写为富文本框编辑器KindEditor

下载 - KindEditor - 在线HTML编辑器 KindEditor的简单使用-CSDN博客 一、 Maven需要的依赖&#xff1a; 如果依赖无法下载&#xff0c;可以多添加几个私服地址&#xff1a; 在Maven框架中加入镜像私服 <mirrors><!-- mirror| Specifies a repository mirror site to…...

高通安卓12-Input子系统

1.Input输入子系统架构 Input Driver(Input设备驱动层)->Input core(输入子系统核心层)->Event handler(事件处理层)->User space(用户空间) 2.getevent获取Input事件的用法 getevent 指令用于获取android系统中 input 输入事件&#xff0c;比如获取按键上报信息、获…...

好写作AI“期刊论文魔法工坊”:打造学术发表的秘密武器

在学术的浩瀚星空中&#xff0c;期刊论文宛如璀璨星辰&#xff0c;是研究者展示智慧结晶、推动学科发展的重要途径。然而&#xff0c;撰写一篇高质量且符合期刊要求的论文&#xff0c;却如同在荆棘丛中开辟道路&#xff0c;充满了挑战与艰辛。别担心&#xff0c;好写作AI宛如一…...

游戏盾导致 Unity/UE 引擎崩溃?内存占用、SO 库冲突深度排查

接入游戏盾后碰到 Unity、UE 编辑器或打包后崩溃、内存暴涨、SO 库冲突的问题&#xff0c;应该都不陌生。我最近在几个项目里反复踩过这些坑&#xff0c;从日志分析、内存追踪到 SO 符号冲突&#xff0c;一步步定位下来&#xff0c;把完整排查流程和解决方案整理出来&#xff0…...

偏迹(Partial Trace)的定义和数学物理意义

我们将通过多个计算示例来掌握偏迹&#xff08;Partial Trace&#xff09;。1. 偏迹的定义1.1 动机在量子力学中&#xff0c;复合系统 的态用密度矩阵 ​ 描述。那么&#xff0c;当我们只关心子系统 时&#xff0c;需要忽略掉其中 的状态&#xff0c;这里通过对子系统 求平…...

STM32智能垃圾桶开发实战:语音识别与自动分类

1. 项目概述这个智能垃圾桶项目是我去年为一个社区环保活动设计的硬件方案。当时社区正在推广垃圾分类&#xff0c;但居民反映传统分类垃圾桶使用不便&#xff0c;经常出现错投混投的情况。于是我就琢磨着用STM32做个能听懂人话、自动开盖的智能垃圾桶&#xff0c;让垃圾分类变…...

LLM到Harness Engineering,我花一天时间捋清了这条技术链,终于搞懂了!

本文深入浅出地梳理了AI领域中的核心概念&#xff0c;从基础的大语言模型&#xff08;LLM&#xff09;、Token、Context、Prompt&#xff0c;到工具&#xff08;Tool&#xff09;、模型上下文协议&#xff08;MCP&#xff09;&#xff0c;再到智能体&#xff08;Agent&#xff…...

具备“看屏幕”能力的Agent能解决哪些传统接口无法解决的问题?实在Agent以ISSUT视觉感知构建企业级AI智能体新高度

2026年4月&#xff0c;人工智能领域正经历从“文本对话”向“具身操作”的范式跨越。根据腾讯云在2026年3月27日发布的《Agent全景产品图谱》&#xff0c;具备“看屏幕”能力的视觉智能体已成为破除数字化转型“最后一步”僵局的核心变量。在过去的一周内&#xff0c;清华大学与…...

2026届学术党必备的六大AI辅助论文工具实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网在近期对自己的 AIGC 检测服务进行了升级&#xff0c;其目的在于识别存在于论文之中的、…...

关系型数据库星型模型聚合表生成

在关系型数据库&#xff08;MySQL、Oracle、SQL Server等&#xff09;中&#xff0c;通过星型模型模拟多维分析结构&#xff0c;高效生成聚合表&#xff0c;解决报表查询慢、多维分析繁琐、实时计算压力大等核心痛点。 一、前置基础 星型模型是关系型数据库模拟多维结构的最优方…...

118. 从 RKE1(Docker)迁移到 RKE2(容器化)后,JSON 日志未能正确解析

Situation 地理位置After migrating the cluster from RKE1 to RKE2, JSON logs sent to Elasticsearch are not being split into fields correctly. 在将集群从 RKE1 迁移到 RKE2 后&#xff0c;发送到 Elasticsearch 的 JSON 日志没有被正确划分为字段。 Resolution 结局T…...

数字孪生技术的测试方法论:虚拟与现实的同步

对于软件测试从业者而言&#xff0c;数字孪生技术的崛起正引发一场深刻的范式革命。测试的对象已从传统的、边界清晰的软件系统&#xff0c;演变为一个由物理实体、动态数字模型、实时数据流以及控制闭环构成的复杂异构系统。这一转变将测试工作的核心&#xff0c;从验证“功能…...