记录--UNI-APP安卓本地打包详细教程(保姆级)
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

一、开发环境
uni-app 官方文档地址 原生开发者支持
1、Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区
2、最新版的HBuilderX
3、App离线SDK下载:最新android平台SDK下载
4、3.1.10版本起需要申请Appkey,申请请参考
二、准备环境
1)Android Studio下载
点击进入 Android Studio官网 或者 Android Studio中文社区
点击Download Android Studio,然后下滑弹窗勾选同意协议,并点击下载Android Studio


下载成功后安装即可。
2)最新版HBuilderX下载
HBuilderX:官方IDE下载地址
HBuilderX 3.4.6版本起,取消单独的App开发版安装包,统一为一个标准安装包。标准版也可以安装app相关插件。
这里直接下载最新的正式版。

如果是已有老版的HBuilderX,可打开编辑器后,通过点击帮助,点击检查更新后,直接点击立即更新,然后等待自动更新后重启HBuilderX即可

3)App离线SDK下载
点击进入:最新android平台SDK下载
复制提取码后进入百度云直接下载最新版压缩包

下载成功后解压压缩包后打开,可根据个人习性,将HBuilder-Integrate-AS文件夹拷贝至其他专门存放打包文件的文件夹内

4)生成本地打包APP资源
打开最新版HBuilderX,点击界面上方的发行,点击原生App-本地打包,点击生成本地打包资源

生成资源成功之后,点击生成链接进入存放目录,保存生成的文件

5)申请Appkey
首先登录开发者中心,没有账号的必须注册一个。
登录成功后点击想要离线打包的项目,进入到项目的详情页

点击菜单栏的离线打包Key管理,勾选打包的平台,自定义Android包名,输入Android 证书签名SHA1,最后点击保存即可生成AppKey。
可通过在生成的Android 证书目录里面cmd命令行输入
keytool -list -v -keystore 证件名.keystore
回车后输入证书文件密码,来查看证书信息(SHA1,SHA256证书指纹)
三、开始离线打包
上述准备工作全部完成后,首先打开Android Studio编辑器导入之前准备工作里步骤三生成的离线SDK资源里的 HBuilder-Integrate-AS 文件夹


导入成功后,首先替换掉simpleDemo\src\main\assets\apps目录下的原有资源,更换为之前准备工作里步骤四HbuiderX 生成的本地打包APP资源

然后将data目录下的dcloud_control.xml文件内的appid清空,更换成自己uni-app的应用标识AppID,也就是准备工作里步骤四HbuiderX 生成的本地打包APP资源的名称

打开Androidmanifest.xml文件,将android:value替换为之前准备工作步骤五里申请的Appkey,将package更换为Android包名


打开values目录下的strings.xml文件,输入自己应用想要的应用名称(类似QQ、微信这些应用名称)

打开drawable目录,该目录主要存放
icon.png : logo图片
push.png : 消息推送logo
splash.png : 启动页
选中任意图片右键,可点击Create 9-Patch file 将图片更换为.9.png类型,防止不同型号手机导致图片变形

打开build.gradle文件,填入Android包名和大版本号和小版本号
可通过在simpleDemo\src\main\assets\apps\__UNI__B0DA83E\www目录下的manifest.json文件查看版本号信息

最后就可以点击Android Studio编辑器上方的build,点击Generate Signed Bundle / APK进行打包


依次输入Android平台签名证书(.keystore)的证书路径、证书秘钥、证书别名和打包密码

选择正式包,最后点击Finish,等待打包完成即可

最后这就是打包完成后的文件,整个离线打包也就结束了,可以直接在手机上进行安装了

四、解决问题
最新解决Android Studio打包没有Generate Signed Bundle/APK选项
在开发React native安装Android Studio时,出现了一些问题,没有Generate Signed Bundle/APK打包选项.
在网上查很多都是点击File,选择Sync Project with Gradle Files,我这边设置无效。

最终通过一系列配置才显示出来。
请检查是否有以下条件:
1、Node.js环境
检查是否有安装nodejs
2、JDK
JDK(Java Development Kit)是 Java 开发套件的简称。我们用 React Native 开发的 Android 应用,最
终是运行在 Java 环境中的。所以,需要安装 JDK。
下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
安装完成后,进行校验,打开cmd命令行,输入 java -version,然后回车,验证安装是否成功(看到版本号,说明JDK 安装成功)。
3、Android Studio环境变量
先查看Android Studio SDK位置:


在系统变量中添加ANDROID_HOME:

编辑系统变量中的Path:
新增4个
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\emulator
%ANDROID_HOME%\tools
%ANDROID_HOME%\tools\bin
以上配置完成后重启软件,即可生效。

本文转载于:
https://blog.csdn.net/PIOnly/article/details/125196697
如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

记录--UNI-APP安卓本地打包详细教程(保姆级)的更多相关文章
- uni-app 安卓离线打包详细教程
借鉴 uni-app官方给出的文章http://ask.dcloud.net.cn/article/508(虽说是04年的) 预备环境 AndroidStudio开发环境,要求安装Android4.0 ...
- Realm_King 之 .NET 打包详细教程(B)
上篇(Realm_King 之 .NET 打包详细教程(A))给大家讲述了打包基本的操作,接下来帮助大家如何覆盖安装,希望大家仔细阅读... (一)看到你的解决方案,选中你的安装程序,点击F4会弹出改 ...
- Fiddler安卓抓包详细教程
电脑端抓包一般图方便就用浏览器自带的,最近需要分析安卓一个APP的HTTP请求,尝试了wireshark(功能太强大了,然而我并不会用),tcpdump(用起来还是比较麻烦),网上搜了一下,还是使用F ...
- Realm_King 之 .NET 打包详细教程(A)
最近一直在winform程序开发,听说身边的人不是很了解打包,给大家提供一点简单的打包,相信能看懂的... (一)右键解决方案: 在弹出"添加新项目"窗体中找到 其他项目类型=& ...
- H5网页应用打包安卓App (全网最详细教程)
img { box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important } .red { color: rgba(255, 0, 0, 1) } ...
- uni-app 使用本地打包配置安卓原生插件
在使用 uni-app 开发的时候,遇到了一个很棘手的问题.即获取设备参数的时候 uni-app 并没有相关方法,而安卓开发是可以做到的,因为接的是三方推广,所以功能必须实现,所以求助了安卓的大佬帮我 ...
- Java项目打包成exe的详细教程
Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步: 1. 利用Eclipse先把Java项目先打成jar包 2. 利用exe4j工具把jar包转成exe 这里以Java项目 ...
- 使用release自动打包发布正式版详细教程
昨天写了个release插件的版本管理,今天就在自动发布过程中遇到了许多坑,只能再写一篇自动发布详细教程,纪念我那昨日逝去的青春 (╥ _ ╥`) release正常打包发布流程按照如下几个阶段: C ...
- HBuilderX生成本地打包App资源
http://ask.dcloud.net.cn/question/60254 概要 在HBuilderX中开发的应用可以提交到云端打包生成apk(Android平台)和ipa(iOS平台).如果本地 ...
- ios签名app稳定不掉签技术详细教程详解
iOS签名是专门针对ios的APP内测的数字签名,是苹果面向开发者提出的一箱机制. 因为现在苹果APP下载渠道只有App Store,还可以加上一个内测用的testflight,也就是说,除了这两个官 ...
随机推荐
- NVME(学习笔记四)—概念解读
1. 综述 NVMe over PCIe协议,定义了NVMe协议的使用范围.指令集.寄存器配置规范等. 名词解释 1.1.1 Namespace Namespace是一定数量逻辑块(LB)的集合,属性 ...
- 【Unity3D】粒子系统ParticleSystem
1 简介 拖尾(TrailRenderer).线段渲染器(LineRenderer).粒子系统(ParticleSystem)是 Unity3D 提供的三大特效,其中粒子系统的功能最为强大,特效也 ...
- Swoole从入门到入土(16)——WebSocket服务器[事件]
WIKI: 问:websocket协议虽然和http协议不同,但是兼容于http协议,如何判断客户端连接使用的是http协议? 答:通过使用 $server->connection_info($ ...
- wordpress设置固定链接404及伪静态配置
说明 最近在将wordpress设置中文章url修改为月份和名称型 之后访问文章出现404.原因是配有配置好apache的伪静态. 配置步骤 1.修改httpd.conf 我这里是centos7,默认 ...
- P1536 村村通(并查集)
村村通 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府 "村村通工程" 的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接 ...
- 一次nginx返回422状态码的经历
故事背景 后端使用Docker Compose部署一个代码片段管理应用:snibox,某天因为云服务卡死重启之后再次访问时,登录或退出都返回422状态码. 界面提示如下: 不过奇怪的是:直接通过IP+ ...
- 2020-11-18 原生js实现自动打字效果
原理 使用定时器,对要输出的文字进行遍历,每遍历一次,都增加一个字以及在段尾加上"|"暗示别人正在打字. js代码 const fangWrite = (theString, qu ...
- PostgreSQL中查看版本的几种方式
PostgreSQL中查看版本的几种方式 1.SQL方式 1 2 3 4 5 6 7 8 9 10 postgres=# show server_version; server_version -- ...
- stat模块
# stat模块定义了常数和函数,并用这些来解释os.stat().os.fstat()和os.lstat()的结果(如果这些在该平台上存在的话). stat.S_ISREG(mode) # 判断mo ...
- 【LeetCode剑指offer 01】数组中重复的数字、两个栈实现队列
数组中重复的数字 数组中重复的数字 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数 ...