本文介绍了Android SDK集成过程中可能出现的问题和解决方法。

集成SDK时出现类似下面这样的崩溃数据,如何处理?

1111

实人SDK强依赖V1签名,如果只选择v2签名,APK将无法在Android 7.0以下安装,同时实人认证SDK无法正常工作。

您可以按照如下两种方式处理:
  • 方式一:执行以下命令,开启build.gradle V1签名配置:
    v1SigningEnabled true
  • 方式二:勾选V1签名复选框。图示

调用实人认证SDK,认证页面一直显示转圈加载,如何处理?

查看logcat日志:
  • 若出现ErrorCode=103,按照如下顺序排查:

    请先检查abiFilters是否配置为armeabi-v7aarm64-v8a。若无问题,请检查工程根目录下gradle/wrapper/gradle-wrapper.properties中使用的gradle版本是否是5.4.1版本。如果是,请至少降至5.1.1或使用4.x 版本(gradle tools同步降级至3.4及以下版本),目前实人认证SDK依赖包不兼容较新的gradle 5.4.1及gradle tools 3.5版本。

  • 若出现ErrorCode=203,请确认以下两种情况:
    1. 安卓环境下可能是因为资源优化被优化成了0 KB,请检查APK中是否存在(res/drawable/yw_1222_*.jpg)图片资源。如果不存在,请检查keep配置是否存在,或者关闭gradle图片混淆配置。

      关于如何关闭radle图片混淆配置,请参见Android集成

    2. 请关闭Android StudioInstant Run功能,在Instant RunAPK并非一个完整bundle,其资源文件被拆分到特定bundle中,可能导致实人认证SDK无法找到签名图片。
  • 若出现ErrorCode=202,请确认以下两种情况:
    1. 签名图片和应用的包名和签名不一致。
    2. 请更新到最新版本的SDK(4.13.0及以上版本),SDK不再校验APK的包名和签名,同时删除本地的yw_1222_*.jpg安全图片。(默认的安全图片已经隐藏到rpsdk.aar中)
  • 若出现ErrorCode=209,请检查图片文件是否更新到最新,需要注意rpsdk版本为3.1.x.x及以上版本和3.0.x.x及以下版本的图片文件不能共用。

调用实人认证SDK,认证页面显示“UNKNOWN_ERROR”或“网络异常,请检查网络”,如何处理?

查看logcat日志,若出现ErrorCode=1412ErrorCode=1225,请依次确认以下三种情况:
  • 签名图片文件(yw_1222_*.jpg)不存在,请确保APK解压之后的签名图片文件在res/drawable目录下。
  • 安卓环境下可能是因为资源优化被优化成了0 KB,请检查APK中的签名图片文件(res/drawable/yw_1222_*.jpg),可参考shrinkResources解决方案。若您未使用官方的资源优化方案,使用了如AndResGuard等非Google官方的第三方压缩混淆插件,建议参考相应插件的官方文档,检查图片名是否被混淆,或路径是否被混淆,以及图片文件是否被压缩。
  • 如果是在Android Studio下调试发现找不到图片,但是确认图片是正常的,请关闭Android StudioInstant Run功能,在Instant RunAPK并非一个完整bundle,其资源文件被拆分到特定bundle中,可能导致实人认证SDK无法找到签名图片。

项目中之前引入的组件与实人认证SDK中的组件重复,例如SecurityGuardSDK,如何处理?

SecurityGuardSDK组件有重复,删除低版本(并且做兼容测试)。

接入实人认证SDK时报Merge Manifest的错误,如何处理?

AndroidManifest.xml中的application节点上加入tools:replace="android:allowBackup"

集成实人认证SDK启用混淆时编译报错,如何处理?

ProGuard配置文件中添加相应配置,例如: 配置

进入认证页面即crash,日志报错:Error inflating class com.alibaba.security.rp.view.TopBar。

检查应用的res/layout目录下是否存在同名的top_bar.xml布局文件,如果存在,请您修改该同名文件。

进行活体识别时,提示人脸验证失败或上传照片时卡在0%,如何处理?

  • 请确认您的网络是否有问题(如网络是否连通、是否开启了网址代理等)。
  • 如果接入的RPSDK是3.0.0.3及以下版本,请检查应用是否未申请外部存储的读写权限。如果无读写权限需在应用权限管理的地方开启存储权限,或直接将RPSDK升级至最新版本。
  • 如果不存在上述问题,请提供logcat日志。如果无法提供运行时的系统日志,请提供认证时的verifyTokenticketId等信息。

App采用了插件机制,集成实人认证Android SDK需要注意什么?

建议您把实人认证Android SDK放到主Bundle下。