uniapp开发 — 安卓离线打包
- 工具:
HBuilderX
、Android Studio
- App离线打包文档
- 下载 Android 离线SDK
目录说明:
|-- HBuilder-Hello App离线打包演示应用
|-- HBuilder-Integrate-AS 集成uni-app或5+ app的最简示例
|-- SDK SDK库文件目录
|-- Feature-Android.xls Android平台各扩展Feature API对应的详细配置
|-- Readme.txt 版本说明文件及注意事项
|-- UniPlugin-Hello-AS uni原生插件开发示例
-
使用HBuilderX生成本地离线包
本地离线包 -
将本地离线包内
本地离线包内www内的文件xxx/xxx/unpackage/resources/__UNI__xxxx/www
的文件复制到SDK内HBuilder-Hello/app/src/main/assets/apps/HelloH5/www
内
-
修改
HBuilder-Hello/app/src/main/res/drawable-xxhdpi/
文件下内的icon.png、splash.png、push.png -
将
HBuilder-Hello/app/src/main/assets/apps/HelloH5
的文件名HelloH5
修改为uni-app
项目manifest.json
中的appid(__UNI__xxxx)
-
打开
修改appidHBuilder-Hello/app/src/main/assets/data/dcloud_control.xml
,将appid
修改为uni-app
项目manifest.json
中的appid(__UNI__xxxx)
-
打开
修改build.gradle文件HBuilder-Hello/app/build.gradle
参考文章:Android Studio 一个工程打包多个不同包名的APK实例详解、uniApp 安卓多环境打包基础配置
1.删除defaultConfig
内的applicationId
,并添加flavorDimensions "default"
2.增加productFlavors
注意:若build.gradle
内定义了自动生成@string/app_name
,则app/src/main/res/values/strings.wxml
需删除,不然会报错Duplicate resources
;否则需要手动修改app_name
打开HBuilder-Hello/app/src/main/res/values/strings.xml
修改应用名称 -
打开
修改包名HBuilder-Hello/app/src/main/AndroidManifest.xml
1.将包名package
替换成要修改成的包名
2.将所有io.dcloud.HBuilder.Hello
替换成要修改成的包名${applicationId}
3.修改icon和label
修改icon和label
4.修改微信支付配置
微信支付配置
uni-app本地安卓打包,下载uni-app官方sdk,如果修改了包名,要调起微信必须要同时修改一下文件包名,如没修改包名则不需要更改,否则会调用不起微信
- 在
HBuilder-Hello/app/src/main/java
下的文件名需要和HBuilder-Hello/app/src/main/AndroidManifest.xml
的package
一致
修改java下的文件名 - 修改
WXPayEntryActivity.java
和WXEntryActivity.java
内的包名与HBuilder-Hello/app/src/main/AndroidManifest.xml
的package
一致
修改 WXPayEntryActivity.java内的包名
修改 WXEntryActivity.java内的包名 -
修改 Androidmainfest.xml
微信支付配置
-
- 在
HBuilder-Hello/app/src/main/assets
目录下创建dcloud_uniplugins.json
文件
{ "nativePlugins": [ { "hooksClass": "", "plugins": [ { "type": "module", // 必填, 根据插件类型选择", "name": "PluginModule", //"必填, 注册插件的名称, 注意:module 的 name 必须以插件id为前缀或和插件id相同,比如 `DCTestUniPlugin-TestModule`,其中 DCTestUniPlugin 为插件的id,避免与其他插件冲突,component 的 name 没有强制要求,但是也要保证唯一比如 `dc-map`" "class": "com.test.plugin.PluginModule"// "必填, 注册插件的类名" } ] } ] }
- 将
HBuilderX
项目使用的插件中android
目录下的aar/jar
文件放入HBuilder-Hello/app/libs
下,其余文件参考插件文档放入指定文件夹中
HBuilderX项目中
- 在
-
生成apk
打包1
打包2
打包3
打包4
注意事项
- app打包时不能使用本地测试服务地址(localhost或127.0.0.1),打包后会造成白屏
- 一个页面最好不要引用两个wxs文件,编译器(2.6.5.20200314)之后的版本运行时会报错
- 修改包名后app部分手机安装失败,可以卸载App后重启手机再重新安装
- 修改应用图标后安装app,手机端应用图标未更新,可能是手机缓存,可以卸载App后重启手机再重新安装
- 安卓手机返回键直接退出应用时不执行
onHide
生命周期 - onPullDownRefresh 需要在 pages.json 的当前页面的节点里的 style 选项中开启 enablePullDownRefresh;刷新完之后,需要调用uni.stopPullDownRefresh 停止当前页面的下拉刷新,否则会一直loading且不能继续下拉刷新