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

Uniapp Android 本地离线打包(详细流程)

一、简介

  • App 离线 SDK 暂时不支持 Kotlin,未来不清楚。

  • uniapp 提供了 云打包本地打包 两种方案,云打包 需要排队且还有次数限制,本地打包 则就没有这些限制,而且会 本地打包 对开发 原生插件 有很大的帮助。

    image.png

  • 细节:需要 Android Studio 打包的时候,记得先通过工具栏的 Build -> 先 Clean Project -> 再 Rebuild Project -> 最后在打包或运行,生成基座或者测试离线包都适用这套流程。

二、准备工作

  • 按照官方文档中的 开发环境 下载好开发工具与 SDK 工程即可:Android 离线打包选了方式二:导入工程 方式,官方文档地址。

    注意:HBuilder X 3.5.0 及以上版本新增库 breakpad-build-release.aar

    注意:HBuilder X 3.8.7 及以上版本新增库 install-apk-release.aar,上架谷歌应用市场不能包含此库,更多参考文档

    我下载这个版本包好像没有 install-apk-release.aar,那就不用管,大多数的配置官方提供的工程中就已经配置好了,这边只把需要修改的罗列一下,当然最好通过本文结合官方文档来对照走步骤更好。

    在这里插入图片描述

    在这里插入图片描述

  • 下载的 Android 工程目录结构介绍,找到 HBuilder-Integrate-AS 离线打包工程,可以拷贝出来使用 Android Studio 打开该工程。

    image.png

    image.png

  • 打开工程后,先按 Android 老项目新人如何快速入手跑起来 这篇文章快速的配置一下基础环境。

  • 如果跑出下面这样的结果,非报错都先不要管,警告随他先。

    在这里插入图片描述

  • 如果需要重新编译项目可以在这里进行,或者使用 Build 工具栏里面刷新按钮也是一个效果。

    在这里插入图片描述

三、创建 Uniapp 测试项目

  • 使用 HBuilderXCli 创建一个测试项目 demo,然后运行到测试机或者模拟器。附:Uniapp 运行到 Android 真机或模拟器。

    1、确认当前模拟器或者真机支持的 cpu 类型,然后进行勾选,这里就是配置要打包的 apk 需要支持哪些cpu 类型的手机,全要支持可以全支持。附:adb 查看安卓手机、模拟器、apk包所支持的 CPU 类型(armeabi、armeabi-v7a、arm64-v8a …)

    反正就是勾的越多,打的包越大,你可以测试时用哪个勾哪个,等发包了在根据需要支持的手机市场进行勾选。

    在这里插入图片描述

    2、测试项目正常运行后,则进行本地打包,获得编译后的源码。

    image.png

    3、看控制台,等待编译完成,去给出的目录找到编译后的源码。

    image.png

    4、替换离线打包工程中的源码

    image.png

    image.png

    5、修改 dcloud_control.xml 文件里面的 appid,其实离线资源文件夹名称就是 appid,可以核对下免得出错。

    在这里插入图片描述

    在这里插入图片描述

四、离线工程的调整

  • 代码导入后,需要进行一些离线打包工程上的细节调整。

  • 包名替换,例如 com.dzm.test

    image.png

  • [可选]compileSdkVersion 修改,compileSdkVersion 30Android 项目中的一个配置项,定义了 编译时使用的 Android API 级别(即 Android SDK 版本),表示你正在使用 API 级别 30(对应 Android 11,即 Android 11)。

    在这里插入图片描述

  • 版本号修改,跟 HBuilderX -》manifest.json 中的版本号保持一致。

    image.png

  • 签名配置,也就是证书相关信息

    1、打开 Uniapp 开发者后台,登录一下。

    image.png

    image.png

    2、点击应用名称进入,找到 Android 云端证书,创建一个,稍微等待一下,需要刷新一下网页就能看到创建好的证书信息了,然后下载证书,放到 HBuilder-Integrate-AS 离线打包工程根目录。

    image.png

    image.png

    image.png

    3、复制证书的绝对路径,并替换配置中的证书路径

    image.png

    image.png

    在这里插入图片描述

    4、配置证书别名、密码

    image.png

    在这里插入图片描述

    在这里插入图片描述

    5、配置打包的 apk 需要支持的 cpu 类型

    ndk {abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
    }
    

    在这里插入图片描述

  • 申请 Appkey,如果没有则需要申请一下,有则可以直接拷贝,需要前往 Uniapp 开发者后台:

    在这里插入图片描述

    在这里插入图片描述

    点击 新增 后,需要填的资料中 包名 按上面的一样,版本可以根据情况来,创建 正式测试 两个切换使用,Android 应用签名SHA1值Android 应用签名SHA256 值在上面的 证书详情 中有,拷贝贴过来即可。其他根据需要可填可不填。

    在这里插入图片描述

    在这里插入图片描述

    然后创建一个 AppKey 并拷贝:

    在这里插入图片描述

    在这里插入图片描述

    AppKey 配置到离线工程中:

    在这里插入图片描述

    这个文件顶部的包名也要改一下,保持同步:

    在这里插入图片描述

  • 配置图标,不同分辨率可以按官方文档上的,多建几个文件夹配置。

    在这里插入图片描述

    在这里插入图片描述

  • 配置应用名称,需要保持一致

    在这里插入图片描述

五、离线工程试跑

  • 创建好虚拟机,点击调试项目

    在这里插入图片描述

    如果报错 Execution failed for task ‘:simpleDemo:stripDebugDebugSymbols’. NDK at /Users/dengzemiao/Library/Android/sdk/ndk-bundle did not have a source.properties file 点这里。

  • 解决问题再次点击调试按钮,项目跑成功了,如果 uniapp 重复打包导入项目后,最新内容没生效,可以删掉模拟器上安装好的包,重新运行安装一下。

    在这里插入图片描述

六、离线自定义基座打包

  • Uniapp Android 离线生成自定义基座(详细流程)

  • Uniapp Android 离线生成自定义基座(官方文档)

相关文章:

Uniapp Android 本地离线打包(详细流程)

一、简介 App 离线 SDK 暂时不支持 Kotlin,未来不清楚。 uniapp 提供了 云打包 与 本地打包 两种方案,云打包 需要排队且还有次数限制,本地打包 则就没有这些限制,而且会 本地打包 对开发 原生插件 有很大的帮助。 细节&#x…...

vite+vue3动态引入资源文件(问题已解决但离了个大谱)

教程很详细,直接上代码 解决方法(赶时间的小友理解下这函数就能解决问题了,就是处理了下路径,运气不好遇到问题再回来也不迟🤣🤣🤣) const getSvgUrl (name) > {// name: svg_1…...

通过 4 种方式快速将音乐从 iPod 传输到 Android

概括 在 iPod 上听音乐很酷,但是当您拥有最新的 Android 手机时,也许您想在新手机上欣赏 iPod 音乐。那么,你的计划是什么?如何将音乐从 iPod 传输到 Android? 如果您担心这个问题,请看看下面的方法。他们…...

ArcGIS中怎么把数据提取到指定范围(裁剪、掩膜提取)

最近,经常能收到怎么把数据提取到指定范围、栅格数据怎么裁剪、矢量数据怎么裁剪、栅格数据怎么掩膜提取的咨询。 下面是我对这个问题的解决思路: 对于矢量数据: ①首先把数据加载进来 ②软件界面上面的工具栏找到→地理处理→裁剪&#x…...

【Vaadin flow 实战】第3讲-快速上手构建VaadinFlow+Springboot的全栈web项目

快速构建VaadinFlowSpringboot的全栈web项目 温馨提示,本文讲解比较精炼,主要以快速上手开发为主。 官方提供了与本文类似的教程讲解,地址https://vaadin.com/docs/latest/getting-started 1访问vaadin官方提供的start网站(类似于 spring i…...

HBase Cassandra的部署和操作

目录 一.数据库的部署与配置 二.使用命令访问数据库 三.数据库的设计 四.编程实现数据库的访问 一.数据库的部署与配置 1.在单个节点上对进行数据库的单机部署 (1)下载apache-cassandra-4.1.7-…...

用户界面软件01

Jens Coldewey 著,Tom.X 译 本文中的模式语言逐步深入地探讨用户界面架构的设计,它基于人机工程学,足以形成一套完整的体系。如果你对这方面有兴趣,请参考[Tog92],[Coo95]和[Col95]。 本文不讨论用户界面的布局&…...

【云原生】Docker Compose 从入门到实战使用详解

目录 一、前言 二、Docker Compose 介绍 2.1 Docker Compose概述 2.2 Docker Compose特点 2.3 Docker Compose使用场景 三、Docker Compose 安装 3.1 安装docker环境 3.2 Docker Compose安装方式一 3.2.1 下载最新版 3.2.2 设置权限 3.2.3 设置软链接 3.2.4 查看版本…...

【ShuQiHere】使用 SCP 进行安全文件传输

【ShuQiHere】🚀 在日常的开发和运维工作中,文件传输是一个常见的任务。scp(Secure Copy)是一个基于 SSH 协议的文件传输工具,能够在本地和远程主机之间安全地复制文件和目录。本文将详细介绍 scp 的使用方法&#xf…...

海康威视H5player问题汇总大全

由于除了要支持Windows平台,还要支持国产系统的平台,这时就用到了H5player,但是这个在使用调试的时候会遇到各种各样的问题,便在此分享一下,供大家分享!!! 问题一:Unexp…...

力扣23.合并K个升序链表

文章目录 一、前言二、最小堆解法三、分治解法 一、前言 23. 合并 K 个升序链表 本题的要求是把K个链表进行合并,合并后的链表必须是从小到大的。 并且这K个链表也是从小到大的升序链表。 二、最小堆解法 既然每个链表都是升序的,也就是从小到大的。 …...

【C 语言指针篇】指针的灵动舞步与内存的神秘疆域:于 C 编程世界中领略指针艺术的奇幻华章

文章目录 【C 语言篇】指针的灵动舞步与内存的神秘疆域:于 C 编程世界中领略指针艺术的奇幻华章前言一 、指针的介绍与使用1. 指针的介绍1.1指针表示1.2指针变量1.3空指针 2. 使用指针2.1交换两个变量的值2.2计算输出最小值和最大值 二、野指针的介绍与使用1. 野指针…...

游戏关卡设计的常用模式

游戏关卡分为很多种,但常用的有固定套路,分为若干种类型。 关卡是主角与怪物、敌方战斗的场所,包括装饰物、通道。 单人游戏的关卡较小,偏线性; 联机/MMO的关卡较大,通道多,自由度高&#xf…...

在一台服务器上使用docker运行kafka集群

1.拉取镜像 docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper 2.创建集群之间通信的网络 docker network create kafka-cluster-net docker network inspect kafka-cluster-net 3.将zookeeper加入到网络中 docker network connect kafka-cluster-net zooke…...

Apache Celeborn 在B站的生产实践

背景介绍 Shuffle 演进 随着B站业务的飞速发展,数据规模呈指数级增长,计算集群也逐步从单机房扩展到多机房部署模式。多个业务线依托大数据平台驱动核心业务,大数据系统的高效性与稳定性成为公司业务发展的重要基石。如图1,目前在大数据基础架构下,我们主要采用 Spark、Fl…...

JOIN 和 OUTER JOIN,SQL中常见的连接方式

1. INNER JOIN(简称 JOIN) INNER JOIN 是 SQL 中最常用的一种连接方式,默认的 JOIN 就是 INNER JOIN。它返回两个表中满足连接条件的匹配记录。 作用:返回两个表中所有满足 ON 条件的记录。特性:如果表中的某些行在连…...

Vue2: table加载树形数据的踩坑记录

table中需要加载树形数据,如图: 官网给了两个例子,且每个例子中的tree-props都是这么写的: :tree-props="{children: children, hasChildren: hasChildren}" 给我一种错觉,以为数据结构中要同时指定children和hasChildren字段,然而,在非懒加载模式下,数据结…...

电子信息硕士面试经验

回顾2024年秋招一些面试常见的问题,主要涉及软件开发和嵌入式部分内容。 1. 浅拷贝深拷贝 深拷贝和浅拷贝是两种不同的拷贝方式,用于复制对象。它们主要区别在于对嵌套对象的处理方式。 浅拷贝:只复制对象的顶层,嵌套对象仍然是共享引用。 深拷贝:递归复制所有对象及其嵌…...

dns网址和ip是一一对应的吗?

DNS网址和IP地址是一一对应的吗?我们在上网时,为什么总是使用网址而不是一串数字?这些问题其实涉及到互联网的基本运作原理。DNS(域名系统)是我们日常上网过程中一个不可或缺的部分,它帮助我们将人类易于记…...

springboot3 redis 常用操作工具类

在 Spring Boot 3 中,操作 Redis 通常使用 Spring Data Redis 提供的工具类,如 RedisTemplate 和 StringRedisTemplate。以下是一个详细的 Redis 操作工具类的实现,涵盖了常用功能。 完整的 Redis 工具类 以下工具类可以实现基本的 Redis 操…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

C++使用 new 来创建动态数组

问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...