问题描述
Android 开发者在完成小程序接入后,尝试在应用中打开小程序时,容器页面显示错误提示“网络不给力,请稍后再试”,如下图:
常见原因
mPaaS 在打开一个小程序应用前,首先需要获知该小程序包的基本信息,因此客户端会主动通过 mPaaS 的 RPC 接口 alipay.client.getUnionResource
去拉取离线包信息。如果小程序包信息获取失败(RPC 出现异常),小程序容器就会提示错误 “网络不给力,请稍后再试”。
问题排查步骤
- 过滤日志。
在 Android Studio 控制台过滤日志信息中的 RPC Exception 字段。
- 查询异常码描述。
如 常见原因 所述,客户端需要主动拉取离线包信息,而拉取过程依赖 RPC 请求。如果 RPC 链路存在问题,则无法正常获取离线包信息,导致加载失败。要确认 RPC 请求是否存在问题,需要在 Android Studio 控制台中搜索alipay.client.getUnionResource
观察 RPC 请求是否正常返回。如果存在错误,一般的错误代码包括 7XXX 系列等,例如:
错误码 说明 示例 7000 没有设置公钥 移动 App 的无线保镖中无 appId 对应的密钥。 7001 验签的参数不够 网关服务端验证签名不通过。 7002 验签失败 网关服务端验证签名不通过。 7003 验签-时效性失败 API 请求入参 ts 时间戳超过系统设置的时间有效性限制。 7007 验签-缺少 ts 参数 API 请求缺少验签 ts 参数。 7014 验签-缺少 sign 参数 API 请求缺少验签 sign 参数。 -
根据不同异常,解决RPC异常。
- 7000-7002
代表图片生成有问题,请按照接入 Android 步骤重新生成图片,若是专有云环境,需要联系专门的服务人员进行进一步排查。 - 7003、7007
代表验签时效问题,可能是手机时间设置与网关服务时间相差超过 30 分钟导致,需检查手机时间。 -
7014
代表上传 mPaas 控制台的 APK 签名和应用打包签名信息不一致。排查方法如下:-
检查上传 mPaas 控制台的 APK 包签名 debug 环境是否已配置。 在 App 的 gradle 打包配置信息中添加 debug 和 release 信息。正常手机运行在打 debug 包环境下,所以要配置 debug 信息。
signingConfigs{
debug{
keyAlias 'key0'
keyPassword '123456'
storeFile file('D:/project/signFile/xx.jks')
storePassword '123456'
}
release{
keyAlias 'key0'
keyPassword '123456'
storeFile file('D:project/signFile/xxx.jks')
storePassword '123456'
}
}
- 检查 mPaas 控制台 Android 配置信息中 Package Name 信息和上传 APK 文件是否和 App 工程一致。
-
- 7000-7002
工单协助
如果依然不能解决问题,请准备好相关问题的复现 Demo 工程,通过阿里云 工单系统 联系 mPaaS 售后技术支持。