In 2018 I created a kiosk app based on this concept https://www.b4x.com/android/forum/threads/device-owner-tasklock-kiosk-apps-2017.81765/ which was a consolidated TV & Foxtel (cable TV) remote control for my late father who had lost the dexterity to use his normal remote controls. This was the UI:
With the passing of my father, I repurposed the Samsung tablet, but now another member of my family is in the same position and I want to reinstall my kiosk app on the same tablet for them to use.
However, the app will no longer compile, so I suspect an incompatibility issue given 8 years have passed. Yes, I'm still running B4A version 12.80 and here is the error:
The Samsung tablet is running Android 5.1.1, which I assume is what it was when the app previously functioned and can't probably be updated anyway, although I see in my code I have:
and so I don't know if I had it running on Android 4 at some stage.
Here is the manifest, noting the lines applicable to making it a kiosk app are commented out, but I don't think that's relevant to the error:
I understand this post hasn't provided any details of my app code, but I'm wondering if the above error and manifest information may enable someone to suggest a possible fix so I can resurrect this app which proved very useful to an incapacitated person previously.
But I fear the Android ecosystem may have moved on and what worked back in 2018 may not be acceptable in 2026!
With the passing of my father, I repurposed the Samsung tablet, but now another member of my family is in the same position and I want to reinstall my kiosk app on the same tablet for them to use.
However, the app will no longer compile, so I suspect an incompatibility issue given 8 years have passed. Yes, I'm still running B4A version 12.80 and here is the error:
B4X:
B4A Version: 12.80
Parsing code. (0.00s)
Java Version: 19
Building folders structure. (0.00s)
Compiling code. (0.01s)
Compiling layouts code. (0.00s)
Organizing libraries. (0.00s)
(AndroidX SDK)
Compiling resources (0.03s)
Linking resources (0.20s)
Compiling generated Java code. Error
An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at androidx.lifecycle.LifecycleProcessor.getSupportedSourceVersion(LifecycleProcessor.kt:37)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.checkSourceVersionCompatibility(JavacProcessingEnvironment.java:758)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:698)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:823)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:919)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1262)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1377)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1234)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:916)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:317)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)
at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 13 more
javac 19.0.2
The Samsung tablet is running Android 5.1.1, which I assume is what it was when the app previously functioned and can't probably be updated anyway, although I see in my code I have:
B4X:
#AdditionalJar: com.android.support:support-v4
and so I don't know if I had it running on Android 4 at some stage.
Here is the manifest, noting the lines applicable to making it a kiosk app are commented out, but I don't think that's relevant to the error:
B4X:
'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: http://www.b4x.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="26"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.
AddPermission(android.permission.ACCESS_COARSE_LOCATION)
'Content to make into kiosk app
'AddApplicationText(<receiver android:name="anywheresoftware.b4a.objects.AdminReceiver2"
' android:permission="android.permission.BIND_DEVICE_ADMIN">
' <meta-data android:name="android.app.device_admin"
' android:resource="@xml/device_admin" />
' <intent-filter>
' <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
' </intent-filter>
'</receiver>)
'CreateResource(xml, device_admin.xml,
'<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
' <uses-policies>
' <limit-password />
' <reset-password />
' <force-lock />
' </uses-policies>
'</device-admin>
')
'Make a home launcher activity
'AddActivityText(Main,
'<intent-filter>
' <action android:name="android.intent.action.MAIN" />
' <category android:name="android.intent.category.HOME" />
' <category android:name="android.intent.category.DEFAULT" />
'</intent-filter>
')
'********* TabStrip ***********************
CreateResource(drawable, background_tab.xml,
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_shortAnimTime">
<item android:state_pressed="true" android:drawable="@color/background_tab_pressed" />
<item android:state_focused="true" android:drawable="@color/background_tab_pressed"/>
<item android:drawable="@android:color/transparent"/>
</selector>)
CreateResource(values, colors.xml,
<resources>
<color name="background_tab_pressed">#6633B5E5</color>
</resources>)
'******************************************
I understand this post hasn't provided any details of my app code, but I'm wondering if the above error and manifest information may enable someone to suggest a possible fix so I can resurrect this app which proved very useful to an incapacitated person previously.
But I fear the Android ecosystem may have moved on and what worked back in 2018 may not be acceptable in 2026!