本文针对能进行云打包的uniapp项目!
准备工作
- uniapp项目;
- HBuilderX;
- Android Studio(本文用的是 android-studio-2020.3.1.24-windows.exe);
- SDK(版本需要和HBuilderX版本一致);
- 各种权限、key、appid、包名、别名、密钥密码、证书、sha1等;
SDK 目录
下载地址:https://nativesupport.dcloud.net.cn/AppDocs/download/android
|-- HBuilder-Hello App离线打包演示应用
|-- HBuilder-Integrate-AS 集成uni-app的最简示例
|-- SDK SDK库文件目录
|-- Feature-Android.xls Android平台各扩展Feature API对应的详细配置
|-- Readme.txt 版本说明文件及注意事项
|-- UniPlugin-Hello-AS uni原生插件开发示例
主要用到的是 HBuilder-Integrate-AS
一、生成本地打包APP资源
HBuilderX菜单:发行=》原生app本地打包=》生成本地打包APP资源;
生成的资源后面用到
二、准备工程
- 把
HBuilder-Integrate-AS
复制到项目文件夹; - 打开Android studio新建一个空白项目,选择No Activity(下图);
- 关掉电脑各个域防火墙,不然后面下载不了Gradle,或者手动下载;
- 右上角点击 Import Project 导入刚才复制的
HBuilder-Integrate-AS
; - 配置项目时,语言选择
JAVA
(App离线SDK不支持Kotlin),Minimum API Level 选21及以上; - 静待下载各种依赖包(右下角有进程);
- 左上角把
Android
切换为Project
(下图);
三、配置各种文件
参考官方文档:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android
- 可以把
simpleDemo
修改为 app,但是要把相应的名称都改掉(全局搜索);
- 把第一步打包好的资源放到
\app\src\main\assets\apps
内; - 把
\app\src\main\assets\data
的dcloud_control.xml
的appid改为自己的; - 把
\app\src\main\res\drawable
的图标改为自己的,splash则可以右键创建 .9 启动图(splash.png和splash.9.png只能保留一个); - 把
\app\src\main\res\values\strings.xml
的app名称改为自己的,这个会显示在手机桌面; -
重点
修改文件\app\src\main\AndroidManifest.xml
把manifest节点的package属性改为自己项目的包名;
把${apk.applicationId}改为自己项目的包名;
搜索dcloud_appkey,把下一行的value值改为dcloud开发者后台生成的appkey;
添加权限:在application节点前,与application节点并列:
例如:(也就是uniapp项目的配置文件manifest.json里面的权限permission那一坨)
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
如果有高德定位则需要配置高德key:(与刚才配置dcloud_appkey的节点并列)
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="这里填高德开发平台配置好安卓应用的key" />
<service android:name="com.amap.api.location.APSService" />
同时要把下载的SDK中复制sdk目录里地图相关的sdk文件到工程中:
- 配置
build.gradle
,在app(simpleDemo)目录下:
defaultConfig:
applicationId包名
versionCode版本号code
versionName版本号
signingConfigs:配置证书相关信息
如果要配置打包后包名称,可以搜索applicationVariants.all最新配置方法;
四、编译报错等问题(编译之前处理这些)
- 编译报错:
License for package Android SDK Build-Tools 29.0.2not accepted
;
原因是跟HBuilder的sdk版本不一样;解决:
菜单选择file=》setting=》
按步骤选择、下载sdk、应用、确认;
- 编译报错:
.android/repositories.cfg could not be loaded
;
解决:进入该文件目录,C:\Users\xxx\.android\
运行命令:touch ~/.android/repositories.cfg
五、打包apk
- 点击右上角的 绿色锤子Make Project 编译打包;
- 编译成功之后(确定没报错),点击左上菜单
Build => Generate Singed Bundle or APK
,选择 apk ,下一步填证书信息,勾上记住密码,下一步选择release,等待打包完成; - 生成的apk在app(simpleDemo)的release目录下。