FAQ

I am evaluating a trial version of DexProtector, but once protected the application won't run. Any advice?

If you are using a trial version of DexProtector, protected applications are tied to a device that is specified by trialDeviceID option. Most likely the problem is in the incorrect value of the parameter. Please connect your device to your workstation and execute the following command:

--> adb devices
List of devices attached
00b57c138a750e4f    device

Or the following one if only one device is connected to your machine at the time:

--> adb get-serialno
00b57c138a750e4f

This value '00b57c138a750e4f' (example) needs to be set as the value of the trialDeviceID parameter.

What to expect if the parameter has been set incorrectly? Here is an output of 'adb logcat -v time' command that reflects such a case:

--------- beginning of crash
01-01 09:18:46.881 E/AndroidRuntime( 5979): FATAL EXCEPTION: main
01-01 09:18:46.881 E/AndroidRuntime( 5979): Process: com.licelus.test, PID: 5979
01-01 09:18:46.881 E/AndroidRuntime( 5979): java.lang.RuntimeException: Unable to instantiate application com.licelus.test.Application: java.lang.ClassNotFoundException: 쾟䡼酓់凙殃Ạᖚ鏇뾷貱ⵡ䨧坒ƃﵡ
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.app.LoadedApk.makeApplication(LoadedApk.java:802)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5335)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.app.ActivityThread.-wrap2(ActivityThread.java)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.os.Handler.dispatchMessage(Handler.java:102)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.os.Looper.loop(Looper.java:154)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.app.ActivityThread.main(ActivityThread.java:6077)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at java.lang.reflect.Method.invoke(Native Method)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
01-01 09:18:46.881 E/AndroidRuntime( 5979): Caused by: java.lang.ClassNotFoundException: 쾟䡼酓់凙殃Ạᖚ鏇뾷貱ⵡ䨧坒ƃﵡ
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at java.lang.Class.classForName(Native Method)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at java.lang.Class.forName(Class.java:400)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at java.lang.Class.forName(Class.java:326)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at com.licelus.test.Application.gcdfbfffc(Unknown Source)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at com.licelus.test.Application.attachBaseContext(Unknown Source)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.app.Application.attach(Application.java:189)
01-01 09:18:46.881 E/AndroidRuntime( 5979):     at android.app.Instrumentation.newApplication(Instrumentation.java:1008)

You might also use this option with a full license to create device tied versions of your applications.

I have published my application on Google Play and the pre-launch report is full of crashes, can it be connected to DexProtector?

Google has started re-signing published applications by default for the pre-launch tests, which obviosly triggers the integrity control's anti-tampering measures, and as a result the application is crashed.

In order to avoid that, it is needed to enable "Opt-out of generating pre-launch reports where ... is re-signed": in your Google Play Console -> Go to an application -> Release Management -> Pre-launch report -> Settings ("You can configure your pre-launch report in Settings") -> Set to Opt-out of genering pre-lauch reports where your application is re-signed, and you are all set.

I purchased a license a few years ago, now I have a new computer. May I get the latest version and a new activation code (my current license file does not work with the new hardware)?

Absolutely, if you have an active support subscription you will get a link to the latest version and a new activation code. If your support subscription is expired you still can get a new activation code and use it with a version that has been available before your support subscription expired. For example, you have a valid support subscription and the 6.5.7 version is available, even though your support subscription expires in one day - you are eligible to use 6.5.7 version forever with your lifetime license. In case you changed hardware or upgraded your OS and so on, please email us and we will issue a new activation code for you (they are single use).

Where can I get the latest version?

Please email us, or use the contact form and we will send you a time-limited link to the latest version.

I have protected my application, but it takes longer to start. What can I do?

Please try excluding insensitive classes using the filters. Here you might find the information of how the filters work. And here you might find the information regarding the performance optimisation. DexProtector gives you an ultimate flexibility with regard to the filters:

    <stringEncryption mode="all">
        <filters>
            <!-- Includes classes from 'core' package, inner packages are excluded -->
            <filter>com.licel.mybankingapp.core.*</filter>
            <!-- Includes classes from 'messenger' package, inner packages are excluded -->
            <filter>glob:com/licel/mybankingapp/messenger/*</filter>
            <!-- Includes classes from 'ui' package, inner packages and their classes are also included -->
            <filter>glob:com/licel/mybankingapp/ui/**</filter>
            <!-- Includes classes from 'android' package, inner packages are excluded -->
            <filter>glob:com/licel/mybankingapp/android/*</filter>
            <!-- Excludes classes from 'opensdk' package, inner packages and their classes are also excluded -->
            <filter>glob:!com/licel/opensdk/**</filter>
            <!-- Excludes a single class -->
            <filter>glob:!com/licel/utils/GreetingsGenerator.class</filter>
            <!-- You also can use regular expressions -->
            <filter>regex:^.../a..ect.*$</filter>
            <filter>regex:^com/cor.*$</filter>
       </filters>
    </stringEncryption>

Should you have any questions or need any advice, please contact our team.