
SDK Version 4.14.0 and Above
LiteRT Version override
JumioSDK bundles LiteRT Version 1.0.1 which supports 16kb page size for ARM64-v8 but not x86_64. This is fine for the JumioSDK as only ARM cpus are supported. An update to 1.4.0 is currently not possible because the min API level of LiteRT 1.4.0 (25) exceeds the min API level of the Jumio SDK (21). If you don't use LiteRT elsewhere in the code you can remove the x86 and x86_64 libraries by excluding them in the packagingOptions:
android {
...
packagingOptions {
...
it.excludes.add("lib/x86_64/libtensorflowlite_jni.so")
it.excludes.add("lib/x86/libtensorflowlite_jni.so")
}
}
If your apps min API level is at least 25 then the LiteRT dependency can be overridden:
implementation ("com.jumio.android:docfinder:4.14.0") {
exclude group: 'com.google.ai.edge.litert', module: 'litert'
exclude group: 'com.google.ai.edge.litert', module: 'litert-metadata'
}
implementation ("com.jumio.android:liveness:4.14.0") {
exclude group: 'com.google.ai.edge.litert', module: 'litert'
}
implementation 'com.google.ai.edge.litert:litert:1.4.0'
implementation 'com.google.ai.edge.litert:litert-support:1.4.0'
Known Issues (SDK Version 4.0.0 and Above)
Duplicate Files for 'libc++_shared.so' Library
If build fails with error message:
2 files found with path 'lib/arm64-v8a/libc++_shared.so' from inputs ...
Please add the following packagingOptions to the configuration in your build.gradle file:
android{
packagingOptions {
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
}
}
Picking a file does not work on some Xiaomi devices
On some Xiaomi devices (e.g. Redmi Note 4) it can happen that picking a file from local storage for document verification fails. This boils down to a problem with Xiaomi's default file manager. To fix this, please install and use a different file manager on those devices when loading a file for document verification.
SDK Version 3.9.2 and 4.0.0
Face Scan Crash at Start
If the face scan crashes without warning on camera start and/or the following error message is displayed:
java.lang.SecurityException: To use the sampling rate of 0 microseconds, app needs to declare the normal permission HIGH_SAMPLING_RATE_SENSORS.
Please make sure to add the following permission to your AndroidManifest.xml file:
<uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS"/>
SDK Version 3.9.0
Custom UI
- Make sure to display the
NetverifyCustomScanViewonly AFTER callingstartScan()as done in our Sample, to ensure that the scan presenter is fully initialized and the camera callbackonNetverifyCameraAvailable()will be fired.
SDK Version 3.8.0 and Newer
Stuck on 'Processing Documents' Screen
If user is getting stuck indefinitely after scanning process during 'Processing documents' stage without a callback or error message, please make sure the following dependencies
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version
apply plugin: 'kotlinx-serialization'
dependencies {
...
implementation "org.jetbrains.kotlinx:kotlinx-serialization-core:1.0.0"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0"
...
}
have been included in your build.gradle file. Missing Kotlin serialization will result in infinite loading without a callback.
Please also refer to the 3.8.0 "Dependency Changes" section of our transition guide and the build.gradle(https://github.com/Jumio/mobile-sdk-android/blob/master/sample/JumioMobileSample/build.gradle) of our sample application for additional information.
Fallback to Manual Capturing Using iProov
In some rare cases, the iproov Token Call can take too long to complete, which means the token is not yet available when the decision for the Liveness Vendor is made. When this happens, the scan mode FACE_MANUAL (Manual Capturing) will be used as a fallback. This also applies to Tablets and devices running on Android Version 5 ("Lollipop") or lower.
Note: This is most likely to happen for applications implementing CustomUI that start with face scanning directly.
Issues with okhttp3 Dependency Using iProov
iProov indirectly depends on okhttp 3.8.1. As of now, issues related to okhttp have been due to the use of okhttp 4.x.
This can be solved by downgrading the dependency that provides 4.x, by excluding the okhttp package from that dependency, or by a combination of both of these. (Please note that a 3.x version is not necessarily older than 4.x one.)
Please also refer to iProov FAQ for further information.
Jetifier Issues
Due to a bug in the Jetifier, the Bouncycastle library needs to be added to the Jetifiers ignorelist in the gradle.properties
android.jetifier.blacklist=bcprov-jdk15on
Please note that the naming of this will change with the Android Gradle Plugin 4 release and will become android.jetifier.ignorelist
Custom UI
On using iProov in CustomUI, in case NetverifySDKController$retry function is called for an error EXX0000, the SDK can fail with the following exception: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/jumio/zoom/custom/ZoomCustomScanPresenter. This issue was fixed in SDK version 3.9.0. As a workaround it is possible to only add implementation "com.jumio.android:zoom:3.8.0@aar" to the build.gradle dependencies.
SDK Version 3.7.x
Kotlin Integration
Since the Jumio SDK is partly written in Kotlin, it is necessary to add the Kotlin standard library dependency to your project, even if the project itself if written in Java.
Miscellaneous
Static Interface Methods Are only Supported with Android N
Error message "Static interface methods are only supported with Android N" will be displayed when Java 8 compatibility is not enabled. In this case, please make sure to enable compatibility in your build.gradle file:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
SDK Crashes Trying to Display Animations (Android Version 5 and Lower)
Running the SDK on API Level 21/Android Version 5 ("Lollipop") or lower, the application might crash when trying to display Jumio animations. In this case it is necessary to add the line AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) to the onCreate() method of your application or Activity, ideally before setContentView() is called.
This is not needed anymore for SDK 4.14.0 and up as the minimum API Level was raised to 23.
Country Missing from the Country List
Countries with documents that are MRZ-capable (which is the case for most passports) might not be available if the necessary MRZ dependency is missing. The dependency in question is:
implementation "com.jumio.android:nv-mrz:3.9.0@aar"
Countries with documents that have a barcode might not be available if the necessary MRZ dependency is missing. The dependency in question is:
implementation "com.jumio.android:nv-barcode:3.9.0@aar"
A complete list of all dependencies can be found here.
Note: Version numbers may vary.
Datadog in Dynamic feature modules
Datadog registers a Content Receiver through its AndroidManifest. Therefore Datadog needs to be linked in the base app, otherwise the app will crash during start.
api "com.datadoghq:dd-sdk-android-rum:2.0.0"
Note: Datadog was removed in SDK version 4.13.0