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

调起实人认证SDK,进入认证页面一直显示转圈加载

查看logcat日志。

  • 若出现ErrorCode=103,先检查abiFilters是否配置为armeabi-v7a和arm64-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=202,则是签名图片文件(yw_1222_0670.jpg)有问题。一般是获取签名图片文件时的apk的签名和当前正在运行的apk签名不一致。请参考集成文档开头说明检查签名,使用正确签名的apk获取签名图片文件。如果确认自己确实需要多个签名,请分别上传不同签名的apk包获取不同的签名图片文件,在运行时使用正确的签名图片文件。
  • 若出现ErrorCode=203,请依次确认以下三种情况。
    • 签名图片文件(yw_1222_0670.jpg)不存在,请确保签名图片文件在res/drawable目录下。
    • 安卓环境下可能是因为资源优化被优化成了0KB,请检查APK中的签名图片文件(res/drawable/yw_1222_0670.jpg),可参考shrinkResources解决方案。若您未使用官方的资源优化方案,使用了如AndResGuard等非Google官方的第三方压缩混淆插件,建议参考相应插件的官方文档,检查图片名是否被混淆,或路径是否被混淆,以及图片文件是否被压缩。
    • 如果是在Android Studio下调试发现找不到图片,但是确认过图片是正常的,请关闭Android Studio的Instant Run功能。在Instant Run下apk并非一个完整bundle,其资源文件被拆分到特定bundle中,图片路径发生改变会导致找不到签名图片文件。
  • 若出现ErrorCode=209,请检查图片文件是否更新到最新,需要注意rpsdk 3.1.x.x(含)以上和3.0.x.x(含)以下两个版本的图片文件不能共用。

调起实人认证 SDK,进入认证页面展示 “UNKNOWN_ERROR” 或 “网络异常,请检查网络”

查看logcat日志。

  • 若出现ErrorCode=1208、1215、1411,说明当前开发包与在管理控制台下载SDK时上传包的包名(package name)或签名(keystore)不一致。请在管理控制台重新上传当前开发包,用新下载SDK中的yw_1222_*.jpg签名图片文件替换开发包中原有的文件。

    工程上,通常对IDE中直接运行(debug)和正式打包(release)会配置不同的签名(keystore),在IDE中直接编译运行的是debug包,其签名图片文件和release包是不同的。

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

项目中之前引入的组件与实人认证SDK中的组件有重复,例如SecurityGuardSDK、oss-android-sdk

若SecurityGuardSDK组件有重复,删除低版本,但保留两个版本的yw_1222_*.jpg签名图片文件;若oss-android-sdk 等其他组件有重复,删除低版本即可。

接入实人认证SDK时报Merge Manifest的错误

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

集成实人认证SDK启用混淆时编译报错

在ProGuard配置文件中添加相应配置,例如:
dontwarn com.taobao.securityjni.**
keep class com.taobao.securityjni.*{;}
dontwarn com.taobao.wireless.security.**
keep class com.taobao.wireless.security.*{;}
dontwarn com.ut.secbody.**
keep class com.ut.secbody.*{;}
dontwarn com.taobao.dp.**
keep class com.taobao.dp.*{;}
dontwarn com.alibaba.wireless.security.**
keep class com.alibaba.wireless.security.*{;}
dontwarn com.alibaba.security.rp.**
keep class com.alibaba.security.rp.*{;}
dontwarn com.alibaba.sdk.android.**
keep class com.alibaba.sdk.android.*{;}
dontwarn com.alibaba.security.biometrics.**
keep class com.alibaba.security.biometrics.*{;}
dontwarn android.taobao.windvane.**
keep class android.taobao.windvane.**{*;}

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

检查下自己应用的res/layout目录下是否存在同名的top_bar.xml布局文件,有的话改成其他名字,再试下。

做完活体识别提示人脸验证失败或拍照上传卡在 0%

  • 请确认网络是否有问题(如网络是否连通、是否开启了网址代理等)。
  • 请检查当前手机系统版本是否为Android 9及以上,若OSS SDK版本在2.9.0以下,请升级至2.9.0及以上版本。
  • 若接入的rpsdk是3.0.0.3及以下版本,请检查应用是否未申请外部存储的读写权限,若无权限需在应用权限管理的地方开启存储权限,或直接将rpsdk升级至最新版本。
  • 若确认以上均无问题,请尽量提供下logcat日志,若无法提供运行时的系统日志,请提供做认证时的verifyToken、ticketId等信息。

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

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