Titanium Studio complains about "unlicensed module error"

We recommend downloading the Scandit Barcode Scanner Titanium Module from the download page of your Scandit account (as opposed to downloading it from the Ti Marketplace) to circumvent this problem. The above error seems to occur occasionally with the community edition that is available from the Ti Marketplace where the Ti license verification server checks the license, generates an error message and prevents the use of the module. We have not been able to identify the underlying cause of this issue when we reached out to the Ti team.

Crashes or other oddities are happening in the success callback

Starting with version 4.10 the successCallback is called in the engine thread instead of the main thread. Because of this you have to switch to the main thread for any UI specific operations like removing the scanner from the view hierarchy etc. The easiest way of doing this is by using setTimeout:

picker.setSuccessCallback(function(e) {
setTimeout(function() {
// Code that manipulates the UI.
}, 1);

Some barcode formats are not scanned with the Scandit SDK

There are two possible causes:

  • If you downloaded the Scandit Barcode Scanner Titanium Module from the Ti Marketplace, you are using the free community edition of the Scandit Barcode Scanner SDK that only supports retail barcode formats such EAN13, UPC12 and QR codes. To decode other barcode formats such as Code39, Code128 or PDF417, you will need to sign up for a (free) trial version at and download the TI module from your Scandit account.
  • Not all barcode formats are enabled by default. Use the Scandit Barcode Scanner API to enable the barcode symbologies used in your app.

App build against Titanium SDK 7.0.0 & 7.0.1 crashes on devices running on Android 7

If you want to build your app with Titanium 7, beware of a known bug in the Titanium SDK 7.0.0 and 7.0.1 related to linking module dependencies, that will only occur on devices running on Android Nougat. If your app crashes right after launch with an error similar to this:

1 [ERROR] TiApplication: (main) [27,3004] Sending event: exception on thread: main msg:java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZNSt3__112__next_primeEj" referenced by "/data/app/com.testapp/lib/arm/"...; Titanium 7.0.0,2017/12/05 13:30,undefined
2 [ERROR] TiApplication: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZNSt3__112__next_primeEj" referenced by "/data/app/com.testapp/lib/arm/"...
3 [ERROR] TiApplication: at java.lang.Runtime.loadLibrary0(
4 [ERROR] TiApplication: at java.lang.System.loadLibrary(
5 [ERROR] TiApplication: at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(
6 [ERROR] TiApplication: at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(
7 [ERROR] TiApplication: at org.appcelerator.kroll.KrollRuntime.doInit(
8 [ERROR] TiApplication: at org.appcelerator.kroll.KrollRuntime$
9 [ERROR] TiApplication: at org.appcelerator.kroll.KrollRuntime.init(
10 [ERROR] TiApplication: at com.testapp.TestApplication.onCreate(
11 [ERROR] TiApplication: at
12 [ERROR] TiApplication: at
13 [ERROR] TiApplication: at
14 [ERROR] TiApplication: at$H.handleMessage(
15 [ERROR] TiApplication: at android.os.Handler.dispatchMessage(
16 [ERROR] TiApplication: at android.os.Looper.loop(
17 [ERROR] TiApplication: at
18 [ERROR] TiApplication: at java.lang.reflect.Method.invoke(Native Method)
19 [ERROR] TiApplication: at$
20 [ERROR] TiApplication: at

you are most probably building against Titanium SDK 7.0.0 or 7.0.1. To solve this issue, check the value of <sdk-version> element of your tiapp.xml config file and make sure that you use Titanium SDK 7.0.2.GA or newer.

Additional troubleshooting information

More troubleshooting information is available in the respective troubleshooting sections for iOS and Android: