Ben Malavazi
Oct 20, 2017
8:43 pm

Crash with Pro Kiosk Mode on Customization SDK

I'm developing an Android app that requires kiosk mode to be on. The Toasts that were displayed when disabling HW keys using the Standard SDK were distracting for the user, so I migrated to the Customization SDK. However, when using the Pro Kiosk Mode in the Customization SDK, I'm getting a crash. I'm also getting a crash when running the sample app for Pro Kiosk Mode, which I downloaded from the Customization SDK sample apps. In my app, it's failing because it can't find the ContextInfo class. On the sample app, it can't find the CustomDeviceManager class. I'm trying to initialize the SDK so that I can use the setProKioskState() API to enable kiosk mode (for hiding the system bars and disabling the HW keys).

I didn't see any such crashes with the Standard SDK, but I did have problems getting the enableKioskMode() and disableKioskMode() API's working on the Standard SDK as well. My guess was that it was memory related because I was getting onTrimMemory() calls, and sometimes onLowMemory() calls. I'm running a WebView primarily, and at times I would exit out of the app to allow the user to configure the WiFi Settings via a startActivity() (with Settings.ACTION_WIFI_SETTINGS).

However, I need the Toast messages to not be displayed so I'm using the Customization SDK, and I'm seeing these crashes. Any help would be appreciated.

10-20 16:25:43.281 26361-26361/com.samsung.sample.sample1 E/AndroidRuntime: FATAL EXCEPTION: main

                                                                            Process: com.samsung.sample.sample1, PID: 26361

                                                                            java.lang.NoClassDefFoundError: Failed resolution of: Landroid/app/enterprise/knoxcustom/CustomDeviceManager;

                                                                                at com.samsung.sample.sample1.MainActivity.updateLicenseUI(MainActivity.java:210)

                                                                                at com.samsung.sample.sample1.MainActivity.onCreate(MainActivity.java:95)

                                                                                at android.app.Activity.performCreate(Activity.java:6221)

                                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)

                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2614)

                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)

                                                                                at android.app.ActivityThread.access$900(ActivityThread.java:172)

                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421)

                                                                                at android.os.Handler.dispatchMessage(Handler.java:102)

                                                                                at android.os.Looper.loop(Looper.java:145)

                                                                                at android.app.ActivityThread.main(ActivityThread.java:5835)

                                                                                at java.lang.reflect.Method.invoke(Native Method)

                                                                                at java.lang.reflect.Method.invoke(Method.java:372)

                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)

                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

                                                                             Caused by: java.lang.ClassNotFoundException: Didn't find class "android.app.enterprise.knoxcustom.CustomDeviceManager" on path: DexPathList[[zip file "/data/app/com.samsung.sample.sample1-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

                                                                                at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

                                                                                at java.lang.ClassLoader.loadClass(ClassLoader.java:511)

                                                                                at java.lang.ClassLoader.loadClass(ClassLoader.java:469)

                                                                                at com.samsung.sample.sample1.MainActivity.updateLicenseUI(MainActivity.java:210) 

                                                                                at com.samsung.sample.sample1.MainActivity.onCreate(MainActivity.java:95) 

                                                                                at android.app.Activity.performCreate(Activity.java:6221) 

                                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 

                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2614) 

                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 

                                                                                at android.app.ActivityThread.access$900(ActivityThread.java:172) 

                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421) 

                                                                                at android.os.Handler.dispatchMessage(Handler.java:102) 

                                                                                at android.os.Looper.loop(Looper.java:145) 

                                                                                at android.app.ActivityThread.main(ActivityThread.java:5835) 

                                                                                at java.lang.reflect.Method.invoke(Native Method) 

                                                                                at java.lang.reflect.Method.invoke(Method.java:372) 

                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 

                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

                                                                            Suppressed: java.lang.ClassNotFoundException: android.app.enterprise.knoxcustom.CustomDeviceManager

                                                                                at java.lang.Class.classForName(Native Method)

                                                                                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)

                                                                                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)

                                                                                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)

                                                                                ... 16 more

                                                                             Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

Similar topics

No similar topics found.