DCloud_App_Array
DCloud_App_Array
  • 发布:2016-01-12 19:33
  • 更新:2024-03-04 16:14
  • 阅读:513379

Android平台本地(离线)打包指南 - Android Studio

分类:5+ SDK

新版离线sdk文档已发布,离线打包请参考最新文档

<!-- ###预备环境 - AndroidStudio开发环境,要求安装Android4.0或以上(API 14)SDK。 - 下载HBuilder离线打包Android版SDK([5+ SDK下载](http://ask.dcloud.net.cn/article/103))。 ###离线打包SDK目录说明 - HBuilder-Hello:离线打包演示应用; - HBuilder-Integrate: 5+ SDK 集成和插件开发示例 - libs:SDK库文件目录; - Feature列表.xls:Android平台各扩展Feature API对应的permission; - Readme.txt:版本说明文件。 ###配置编译工程 - 导入演示应用HBuilder-Hello工程 启动AndroidStudio 点击导入工程“import project”
选中工程所在目录点击“OK”
选择生成的AndroidStudio工程的保存路径,然后点击“next”,
在演示工程中已经配置好HelloH5应用相关资源,完成导入后,可Shift F10直接编译运行:
从SDK目录中拷贝要使用的feature库到工程app/libs目录 参考“Feature列表.xls”文档确定应用中使用到的扩展API,拷贝libs目录中对应的“jar”文件拷贝到工程的app->libs目录下,如果有引用“so”文件需要拷贝到工程的app->src->main->jniLibs下对应目录中。如使用分享功能(新浪微博分享、腾讯微博分享,微信分享),则需要拷贝以下文件:
拷贝完成后在工程中刷新可在工程的libs目录下显示:
- 配置应用的权限 参考“Feature列表.xls”文档确定应用中使用到的扩展API,在AndroidManifest.xml文件中删除不用到API的权限。如不使用音频(plus.audio.*)相关5+ API,则可删除Audio相关的权限:
- 配置其它第三方库的数据 由于第三方库需要使用一些特定的数据,所以在使用时需要将相关参数配置到AndroidManifest.xml文件中。如使用分享功能,则需要配置各分享平台的申请应用的相关参数:
如果不使用此类API,则可将此数据删除。 插件的配置方法请参考以下文档 [Android离线打包插件配置](http://ask.dcloud.net.cn/article/13232) [推送插件配置](http://ask.dcloud.net.cn/article/227) [分享插件配置](http://ask.dcloud.net.cn/article/210) [登陆鉴权插件配置](http://ask.dcloud.net.cn/article/211) [地图插件配置](http://ask.dcloud.net.cn/article/212) [支付插件配置](http://ask.dcloud.net.cn/article/214) [定位插件配置](http://ask.dcloud.net.cn/article/213) - <a id="version">配置应用的包名及版本号</a> 打开AndroidManifest.xml文件,在代码视图中修改根节点的package属性值,如下:
其中package为应用的包名,采用反向域名格式,为应用的标识;versionCode为应用的版本号(整数值),用于各应用市场的升级判断,建议与manifest.json中version -> code值一致;versionName为应用的版本名称(字符串),在系统应用管理程序中显示的版本号,建议与manifest.json中version -> name值一致。 - <a id="name">配置应用名称</a> 打开app->res -> values -> strings.xml文件,修改“app_name”字段值,该值为安装到手机上桌面显示的应用名称,建议与manifest.json中name(基础配置中的应用名称)对应:
- <a id="channel">配置离线打包广告支持及渠道打包配置</a> 新版本SDK简化了离线打包支持[DCloud广告联盟](http://ask.dcloud.net.cn/article/13084)功能。 AndroidManifest.xml文件中添加如下节点到<application>节点中,并配置替换其中5+应用appid、广告联盟会员adid的值和渠道标识,**因为涉及到开屏广告业务,项目工程必须以io.dcloud.PandoraEntry作为5+应用的入口Activity。该activity已包含在lib.5plus.base-release中,开发者无需实现**。 ``` <meta-data android:name="DCLOUD_AD_ID" android:value="广告标识"/> <meta-data android:name="DCLOUD_AD_SPLASH" android:value="true"/><!--如果不开启开屏广告则不设置此字段或者值设置为false <meta-data android:name="DCLOUD_STREAMAPP_CHANNEL" android:value="包名|应用标识|广告标识|渠道,如io.dcloud.appid|appid|adid|google" /><!--为了保证广告统计的有效性,请正确设置此值 ``` + 包名:对应Android项目中build.gradle中的applicationId,如io.dcloud.HBuilder + 应用标识:对应对应5+或uni-app项目manifest.json中appid + 广告标识:DCloud的广告标识,开通广告后可在dev.dcloud.net.cn获取,如果没有开通广告,设置值为空即可 + 渠道:[渠道包制作指南](http://ask.dcloud.net.cn/article/35974) **注意:提交谷歌应用市场(Google Play)时一定要将渠道标识设置为google!!!** 注意:以上操作只是配置5+应用具备广告能力,实际开通需要在manifest.json配置开关,具体参考[DCloud广告联盟](http://ask.dcloud.net.cn/article/13084)。 如果不需要支持广告,仍然可以使用[Widget](http://ask.dcloud.net.cn/article/81)和[WebView](http://ask.dcloud.net.cn/article/80)方式集成。 - 配置应用图标和启动界面 将应用的图标(文件名为icon.png)启动图片按照对应的尺寸拷贝到工程的app->src->main->res -> drawable-XXX目录下:
- 更新应用资源 打开app->src->main->assets -> apps 目录,将下面“HelloH5”目录名称修改为应用manifest.json中的id名称(这步非常重要,否则会导致应用无法正常启动),并将所有应用资源拷贝到其下的www目录中:
- 配置应用信息 打开app->src->main->assets -> data下的control.xml文件,修改appid和appver的值:
其中appid值为HBuilder应用的appid,必须与应用manifest.json中的id值完全一致;appver为应用的版本号,用于应用资源的升级,必须保持与manifest.json中的version -> name值完全一致;version值为应用基座版本号(plus.runtime.innerVersion返回的值),不要随意修改。 - 配置完成编译运行 应用配置完毕,按Shift F10编译运行应用 在弹出的设备列表对话框中选择要运行的设备:
点击OK后启动应用:
###常见问题 **Q:** 打包后页面中无法调用5+API **A:** 修改app->build.gradle文件defaultConfig节点下miniSdkVersion和targetSdkVersion属性指定版本号为8
**注意(新版已不需要添加):**打包时如果修改APK的包名,则同时需要修改Rinfomation.java文件import的包名, 同时需要修改AndroidManifest.xml文件中引用包名的插件有 推送插件 微信(登陆,分享 ,支付),微信同时需要修改引入的WXEntryActivity.java和WXPayEntryActivity.java文件所在的包名 **Q :**使用Android Studio编译时如果提示如下错误
**A:** 下载附件并解压
[点击下载](http://download.dcloud.net.cn/gradle-2.14.1.zip) 点击 Android Studio 菜单 File->Settings->Build,Execution,Development->Build Tools->Gradle选择Use local gradle distribution,选择附件解压后的目录点击OK即可
``` ``` -->
20 关注 分享
Charles Trust skysowe pangubing 1***@qq.com z***@sina.com 东方飞鱼 2***@qq.com 1***@qq.com Geeker 7***@qq.com jzq84229 8***@qq.com 1***@qq.com 1***@qq.com 3***@qq.com w***@126.com HIDE a***@qq.com 冰凌呀

要回复文章请先登录注册

Lspring

Lspring

回复 骁骑 :
请问离线打包后怎么将html和js文件解压到根目录的www目录下呀,这个问题困扰好久了
2018-08-27 15:19
8***@qq.com

8***@qq.com

回复 8***@qq.com :
这套流程都走不下来,细节问题还很多
2018-07-31 15:07
8***@qq.com

8***@qq.com

文档太老,很多说的路径根本没有,出现的问题也没有展示
2018-07-31 15:06
仦伯

仦伯

HBuilder-Hello在哪里下载啊
2018-04-21 11:07
7***@qq.com

7***@qq.com

离线打包为什么任务栏是粉色的?怎么修改?我没找到,改AndroidManifest.xml的主题也没用。求教。
2018-02-06 10:53
G***@rxhui.com

G***@rxhui.com

这个路径不对啊 app->src->res->values->strings.xml
2018-01-09 15:08
兮兮

兮兮

回复 m***@worldflying.cn :
你这个问题解决了吗?
2017-12-20 16:25
m***@worldflying.cn

m***@worldflying.cn

5+修改状态栏的方法失效了,是bug还是我哪里配置没改对?
2017-11-29 13:17
m***@worldflying.cn

m***@worldflying.cn

导入完成后,直接报这个错误:
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
2017-11-27 14:46
逗逗水

逗逗水

回复 逗逗水 :
打开log 显示 too much output to process ,我直接将HBuilderHello 导入到Androdio Studio 里运行出现的错误, 仅仅测试看效果还要在demo中修改其它配置吗?
2017-11-10 10:21