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

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 冰凌呀

要回复文章请先登录注册

小李寻欢

小李寻欢

离线打包,一直在启动页转圈,常见问题中说appid必须与apps/appid/www中的appid值一致,通过分析打包出来的apk发现,apps/appid/www目录竟然不存在。云打包有,离线打包没有。已确认assets/apps/appid/www目录正确。
2019-07-24 16:12
1***@qq.com

1***@qq.com

您好 安卓原生activity怎么传值给uniapp
2019-07-24 11:25
东庐

东庐

选择生成的AndroidStudio工程的保存路径,然后点击“next”,
这一步是怎么打开的?
2019-07-21 20:59
2***@qq.com

2***@qq.com

uni-app本地打包后,怎么调试webview啊?
2019-07-19 19:19
沙粒

沙粒

回复 沙粒 :
已解决,点击‘Sync Project with Gradle Files’,下载一些插件就好了
2019-06-26 15:50
沙粒

沙粒

项目已经导入,shift + 10 点击不能启动可能是什么原因呢? 点击顶部run显示灰色
2019-06-25 20:40
巴加欧文

巴加欧文

回复 巴加欧文 :
建议文档和demo保持一致并做验收测试,质量太差。
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="io.dcloud.HBuilder.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider" />
</provider>
2019-06-13 16:21
巴加欧文

巴加欧文

回复 巴加欧文 :
plus.runtime.install()这个方法,上文写错了
2019-06-12 14:49
巴加欧文

巴加欧文

请教一下调用plus.install.run()方法无法拉起安装是什么原因,日志错误如下:
W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
2019-06-12 14:47
2019

2019

是不是最新的SDK不能用这个方法了?
导入就提示未找到文件 'Android-SDK@1.9.9.63615_20190523\HBuilder-Hello\settings.jar’
2019-05-30 17:47