# Android打包

  • uni-app接入需要使用离线打包方式才能正确接入广告.
  • Android离线打包可生成 自定义基座正式包
  • 请使用下载页指定版本的HBuilderX,否则将出现不可预知的问题

# 打包前准备:

  • IDE(开发工具): HBuilderX(请使用下载页指定的HBuilderX: 见下载页 )、Android Studio 4.0+
  • Android打包工程: 见下载页
  • UNI 官方SDK for Android: 见下载页#IDE下载地址 (如果使用了uni官方的插件需要此包,请按照此压缩包内的Feature-Android.xls来添加其他插件,收费插件不支持离线打包因此无法使用)

离线打包步骤如下:

# 1. 生成本地打包App资源

HBuilderX 中打包APP资源,如下图

生成资源包

# 2. 导入Android工程

解压UniAndroidPackage.7z,使用Android Studio 导入解压后的UniAppFNAd工程,如下图

导入工程

等待导入完成后,将左侧视图切换为 Project 如下图:

设置视图

# 3. 导入uni项目资源

将第1步导出的资源复制到app/assets/apps下,如下图所示:

资源包路径 导入资源包

# 4.配置应用名称

打开app/res/main/values/strings.xml文件,修改app_name字段值,该值为安装到手机上桌面显示的应用名称,建议与manifest.json中name(基础配置中的应用名称)对应,参见下图:

配置应用名称

# 5. 配置dcloud_control.xml文件

修改dcloud_control.xml中的appid为拷贝过来的5+APP的id,确保dcloud_control.xml中的appid与manifest.json中的id与文件夹名一致,如下图所示:

app名称

# 6. 配置应用图标和启动界面

文件名称 作用
icon.png 应用的图标
push.png 推送消息的图标
splash.png 应用启动页的图标

icon.pngpush.pngsplash.png放置到drawabledrawable-nodpi,drawalbe-ldpidrawable-mdpidrawable-hdpidrawable-xhdpidrawable-xxhdpi文件夹下,不同文件夹下对应不同图片尺寸

若无严格体验要求只需放在drawable或者drawable-nodpi文件夹下即可 配置图标

注意

splash.png在不同设备上显示效果不一样,为防止出现拉伸的状况,建议使用Android studio生成.9.png类型图片

# 7. 配置包名和签名

app/build.gradle文件中修改applicationIdsigningConfigs内配置

注意

包名和签名证书必须和在后台中提交的一致,否则广告将不能播放

配置包名和签名

# 8.配置权限

如果添加了插件(参考官方权限文档 (opens new window)),或者在uni工程中的"manifest.json"修改了 App权限,需要配置权限(没有添加插件和修改配置请忽略).

打开manifest.json文件,切换到“代码视图” 在 app-plus -> distribute -> android -> permissions 下找到权限:

配置权限

将权限复制到 在Android Studio 打包工程中 AndroidManifest.xml 的manifest标签中(请自行去掉转义字符 "\""," 请勿将打包工程内原有权限删除 ):

配置权限

# 9. 生成APK(自定义基座、正式包)

注意

如果需要生成自定义基座,请先在第5dcloud_control.xml文件中设置根节点的debug="true" syncDebug="true"如下图所示(打正式包时请删除,否则将会弹出提示"当前应用运行在调试基座中"")

调试模式

点击右方 gradle => app => Tasks => assemble 即可生成apk (没有Tasks选项?点击常用问题解决4查看解决方案)

生成apk

生成的app路径如下图:

app路径

android_debug.apk为调试包,即自定义基座(请勿将此包分发给用户使用)。

release文件夹下的APK为正式包,可分发给用户使用

# 10. 自定义基座的使用

将生成的android_debug.apk复制到HbuilderX项目中的unpackage/debug目录中(没有此目录请创建),并在运行基座中选择自定义基座即可开始调试uni代码

自定义基座 自定义基座

若没有自定义调试基座选项,请检查是否正确放置了自定义基座

# 常见问题

# (1).编译版本不一致

若出现提示SDK版本与编译版本不一致(见下图):

SDK版本提示

请下载文档中指定版本的的HBuilderX HBuilderX 下载地址

使用该版本的HBuilderX打包即可(请勿升级HBuilderX版本)

# (2).插件或者某些功能更无法使用

  1. 如果使用了uni官方插件导致离线打包后无法正常使用插件,请参照下载页 Uni官方SDK For Android 压缩包内的Feature-Android.xls来添加其他插件和官方插件离线打包文档 (opens new window)添加插件;
  2. 如果使用了第三方插件导致离线打包后无法正常使用插件,请参照对应插件的文档来添加插件(因收费插件官方不支持离线打包,如果您采用了收费插件,请根据情况选择不使用收费插件或者不接入广告);

# (3).无法使用某些API

打包后无法正常运行或者无法使用某些API,请检查是否使用了2.8.11之后新增的API,如果是,请用其他方式代替该API

# (4).gradle窗口中没有Tasks

Android Studio中打开设置页面( File => Settings ), 取消勾选Do not build Gradle task list during Gradle sync

设置页面

然后点击Android Studio上方的Sync Project with Gradle Files等待任务执行完毕Tasks即可展示(见下图).

同步设置