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

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

查看logcat日志。

  • 如果出现ErrorCode=202,则说明签名图片文件(yw_1222_0670.jpg)存在问题。一般是获取签名图片文件时的apk的签名和当前正在运行的apk签名不一致,具体请参见Android集成检查签名,并使用正确签名的apk获取签名图片文件。如果确认自己确实需要多个签名,请分别上传不同签名的apk包获取不同的签名图片文件,在运行时使用正确的签名图片文件。
  • 如果出现ErrorCode=203,请确认是否存在以下三种情况:
    • 签名图片文件(yw_1222_0670.jpg)不存在,请确保签名图片文件在res/drawable目录下。
    • 在安卓环境下可能是由于资源优化签名图片文件(yw_1222_0670.jpg)被优化成了0 KB,请检查APK中的签名图片文件(res/drawable/yw_1222_0670.jpg),请参考shrinkResources解决方案。如果您未使用官方的资源优化方案,使用了AndResGuard等非Google官方的第三方压缩混淆插件。建议您参考相应插件的官方文档,检查图片名是否被混淆,或路径是否被混淆,以及图片文件是否被压缩。
    • 如果是在Android Studio下调试发现找不到图片,但是确认图片是正常的,请关闭Android StudioInstant Run功能。在Instant Run下的apk并非一个完整bundle,其资源文件将被拆分到特定bundle中,图片路径发生改变会导致找不到签名图片文件。
  • 如果出现ErrorCode=20,请检查图片文件是否已更新,需要注意RP SDK的版本为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目录下。
    • 在安卓环境下可能是由于资源优化签名图片文件(yw_1222_0670.jpg)被优化成了0 KB,请检查APK中的签名图片文件(res/drawable/yw_1222_0670.jpg),请参考shrinkResources解决方案。如果您未使用官方的资源优化方案,使用了AndResGuard等非Google官方的第三方压缩混淆插件。建议您参考相应插件的官方文档,检查图片名是否被混淆,或路径是否被混淆,以及图片文件是否被压缩。
    • 如果是在Android Studio下调试发现找不到图片,但是确认过图片是正常的,请关闭Android StudioInstant 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及以上版本。
  • 如果接入的RP SDK是3.0.0.3及以下版本,请检查应用是否未申请外部存储的读写权限。如果无读写权限需在应用权限管理的地方开启存储权限,或直接将RP SDK升级至最新版本。
  • 如果不存在上述问题,请提供logcat日志。如果无法提供运行时的系统日志,请提供认证时的verifyToken、ticketId等信息。

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

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