- 工具:
HBuilderX
瘟裸、Android Studio
- App離線打包文檔
- 下載 Android 離線SDK
目錄說(shuō)明:
|-- HBuilder-Hello App離線打包演示應(yīng)用
|-- HBuilder-Integrate-AS 集成uni-app或5+ app的最簡(jiǎn)示例
|-- SDK SDK庫(kù)文件目錄
|-- Feature-Android.xls Android平臺(tái)各擴(kuò)展Feature API對(duì)應(yīng)的詳細(xì)配置
|-- Readme.txt 版本說(shuō)明文件及注意事項(xiàng)
|-- UniPlugin-Hello-AS uni原生插件開(kāi)發(fā)示例
-
使用HBuilderX生成本地離線包
-
將本地離線包內(nèi)
xxx/xxx/unpackage/resources/__UNI__xxxx/www
的文件復(fù)制到SDK內(nèi)HBuilder-Hello/app/src/main/assets/apps/HelloH5/www
內(nèi)
修改
HBuilder-Hello/app/src/main/res/drawable-xxhdpi/
文件下內(nèi)的icon.png、splash.png、push.png將
HBuilder-Hello/app/src/main/assets/apps/HelloH5
的文件名HelloH5
修改為uni-app
項(xiàng)目manifest.json
中的appid(__UNI__xxxx)
-
打開(kāi)
HBuilder-Hello/app/src/main/assets/data/dcloud_control.xml
,將appid
修改為uni-app
項(xiàng)目manifest.json
中的appid(__UNI__xxxx)
-
打開(kāi)
HBuilder-Hello/app/build.gradle
參考文章:Android Studio 一個(gè)工程打包多個(gè)不同包名的APK實(shí)例詳解、uniApp 安卓多環(huán)境打包基礎(chǔ)配置
1.刪除defaultConfig
內(nèi)的applicationId
拨拓,并添加flavorDimensions "default"
2.增加productFlavors
注意:若build.gradle
內(nèi)定義了自動(dòng)生成@string/app_name
,則app/src/main/res/values/strings.wxml
需刪除叹话,不然會(huì)報(bào)錯(cuò)Duplicate resources
;否則需要手動(dòng)修改app_name
打開(kāi)HBuilder-Hello/app/src/main/res/values/strings.xml
-
打開(kāi)
HBuilder-Hello/app/src/main/AndroidManifest.xml
1.將包名package
替換成要修改成的包名
2.將所有io.dcloud.HBuilder.Hello
替換成要修改成的包名${applicationId}
3.修改icon和label
4.修改微信支付配置
uni-app本地安卓打包侮东,下載uni-app官方sdk,如果修改了包名豹芯,要調(diào)起微信必須要同時(shí)修改一下文件包名悄雅,如沒(méi)修改包名則不需要更改,否則會(huì)調(diào)用不起微信
- 在
HBuilder-Hello/app/src/main/java
下的文件名需要和HBuilder-Hello/app/src/main/AndroidManifest.xml
的package
一致
- 修改
WXPayEntryActivity.java
和WXEntryActivity.java
內(nèi)的包名與HBuilder-Hello/app/src/main/AndroidManifest.xml
的package
一致
-
修改 Androidmainfest.xml
-
- 在
HBuilder-Hello/app/src/main/assets
目錄下創(chuàng)建dcloud_uniplugins.json
文件
{ "nativePlugins": [ { "hooksClass": "", "plugins": [ { "type": "module", // 必填, 根據(jù)插件類(lèi)型選擇", "name": "PluginModule", //"必填, 注冊(cè)插件的名稱(chēng), 注意:module 的 name 必須以插件id為前綴或和插件id相同铁蹈,比如 `DCTestUniPlugin-TestModule`宽闲,其中 DCTestUniPlugin 為插件的id,避免與其他插件沖突握牧,component 的 name 沒(méi)有強(qiáng)制要求容诬,但是也要保證唯一比如 `dc-map`" "class": "com.test.plugin.PluginModule"http:// "必填, 注冊(cè)插件的類(lèi)名" } ] } ] }
- 將
HBuilderX
項(xiàng)目使用的插件中android
目錄下的aar/jar
文件放入HBuilder-Hello/app/libs
下,其余文件參考插件文檔放入指定文件夾中
- 在
-
生成apk
注意事項(xiàng)
- app打包時(shí)不能使用本地測(cè)試服務(wù)地址(localhost或127.0.0.1)沿腰,打包后會(huì)造成白屏
- 一個(gè)頁(yè)面最好不要引用兩個(gè)wxs文件览徒,編譯器(2.6.5.20200314)之后的版本運(yùn)行時(shí)會(huì)報(bào)錯(cuò)
- 修改包名后app部分手機(jī)安裝失敗,可以卸載App后重啟手機(jī)再重新安裝
- 修改應(yīng)用圖標(biāo)后安裝app颂龙,手機(jī)端應(yīng)用圖標(biāo)未更新习蓬,可能是手機(jī)緩存,可以卸載App后重啟手機(jī)再重新安裝
- 安卓手機(jī)返回鍵直接退出應(yīng)用時(shí)不執(zhí)行
onHide
生命周期 - onPullDownRefresh 需要在 pages.json 的當(dāng)前頁(yè)面的節(jié)點(diǎn)里的 style 選項(xiàng)中開(kāi)啟 enablePullDownRefresh措嵌;刷新完之后躲叼,需要調(diào)用uni.stopPullDownRefresh 停止當(dāng)前頁(yè)面的下拉刷新,否則會(huì)一直loading且不能繼續(xù)下拉刷新
參考文檔
- App離線打包文檔
- Android 離線SDK下載
- 微信支付
- 原生插件使用說(shuō)明
- 原生插件打包配置
- UniPush使用指南
- UniPush開(kāi)通指南
- uni-app 資源在線升級(jí)/熱更新
- uni-app 整包升級(jí)/更新方案
- uniapp增量更新
- Android Studio 一個(gè)工程打包多個(gè)不同包名的APK實(shí)例詳解
- uniApp 安卓多環(huán)境打包基礎(chǔ)配置
- HBuilder/HBuilderX真機(jī)運(yùn)行企巢、手機(jī)運(yùn)行枫慷、真機(jī)聯(lián)調(diào)常見(jiàn)問(wèn)題