前言:对HbuiderX离线打包好的uniapp项目,用Android Studio打包为安卓apk,安装在真机中,Android Studio需要经过一系列配置,同时申请高德apk。
一、 uniapp****项目离线打包
1. 在HbuilderX最新版本中建好自己的uniapp项目;
2. 本地打包:发行à原生App-本地打包à生成本地打包App资源
二、将uniapp离线打包后的项目打包为****Android apk
开发环境 (确保自己电脑有Java JDK,详情参考
1. Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区
(Android Virtual Device安卓虚拟设备,就是在电脑上虚拟出安卓手机的环境,让你可以直接在电脑上运行开发出的APP,建议不要勾选,测试APP的话,直接在真机(一部安卓手机)上测试更好,因为官方出的这个安卓虚拟设备,在电脑上运行很慢,即便你没有一部安卓手机,也可以选择其他的安卓模拟器,运行速度都比这个快)
开始载入Android Studio主程序,出现了Unable to access Android SDK add-on list这里选择了Cancel,一直下一步安装SDK,时间相对较长
(特别提示:有些电脑需要到Android Studio安装的bin目录下找到 idea.properties 这个
使用记事本或其他编辑器,打开这个文件,更改 disable.android.first.run 的值等于true,即disable.android.first.run=true 如果没有则直接添加,或者通过修改hosts添加203.208.43.97 dl.google.com,自行百度,直接next
2. App离线SDK下载:最新android平台SDK下载,以及里面的示例
SDK目录说明
3. 导入工程,配置
解压刚下载的压缩包,导入其中HBuilder-Hello工程
(1) 用第一步离线打包的uniapp项目覆盖下载好的演示项目
也就是将__UNI__A315F75整个文件夹拷贝到
D:\Android-SDK@2.8.13.80432_20200928\HBuilder-Hello\app\src\main\assets\apps
同时将原来的HelloH5删掉
(3**)**返回Android Studio修改文件dcloud_control.xml,修改红框位置,为打包资源的manifest.json的id值
(4**)**修改AndroidManifest.xml与build.gradle(文件不要错,因为外层文件还有一个同名的)两个文件的appId,任意唯一,固定格式为XXX.XXX.XXXXX,例如我的:com.nttdata.test
同时将AndroidManifest.xml里所有的io.dcloud.HelloH5替换成com.nttdata.test
批量替换快捷键ctrl+shift+R
(5**)**将java文件夹下的文件路径替换为现在appid路径:将io.dcloud.HelloH5替换为com.nttdata.test,里面的两个文件相应地方也要替换
4. 申请高德key
先需创建本项目发布版的签名文件,由签名文件生成高德需要的发布版安全码SHA1,可直接用命令行方式创建,可参考
本例中使用的命令如下:
keytool -genkey -alias test -keypass 123000 -keyalg RSA -keysize 1024 -validity 36500 -keystore C:\Users\xiaofen.yuan\.android\test.jks -storepass 123000
接着去申请高德key,lbs.amap.com/
通过链接进入高德开放平台,登录后变成如下所示:
点控制台进入应用管理,接着进入我的应用,创建应用
其中高德地图需要发布版安全码SHA1和调试版安全码SHA1
发布版SHA1****的获取:
(1**)打开cmd命令,**找到刚才创建的签名文件的位置
(2**)**输入keytool -list -v -keystore xxx.jks,即可获取到发布版SHA1
调试版SHA1****的获取:
(1**)**调试版本的签名文件位于C:\Users\Administrator\.android下,名称为debug.keystore
找不到debug.keystore文件,解决办法:
在.android****目录下输入: keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000
自己设置秘钥口令
按要求填写内容即可,注意:[否]:y
(2**)**在该密钥库所在的路径下运行cmd,输入keytool -list -v -keystore debug.keystore,回车即可获取。
包名与AndroidMainfest.xml里的package保持一致,一一对应
接着修改AndroidMainfest.xml里android:name="com.amap.api.v2.apikey"的value值
终于进入了最后打包阶段
5. 打包安卓apk