Description
Both on Android 12 and Android 16, the app crashes when it wants to prompt Bluetooth permission.
It probably has to do with the recent changes in #66; because it works fine in 1.5.0, but is broken in 1.5.1.
This bug was reproduced in a custom project that has a custom app.
After bumping the openremote-or-lib version from 1.5.0 to 1.5.1, this fatal crash occurs.
Assigning @Miggets7, as he is the creator of #66, but feel free to assign to someone else.
Crash logs
(censored the app package name, because of client information)
2026-08-05 11:05:13.314 9845-9913 OrMainActivity nl.***.app.staging I Received WebApp message: {"type":"provider","data":{"provider":"espprovision","action":"PROVIDER_ENABLE","consoleId":"4wIn6BXTz1QITX0zPaB3bi"}}
2026-08-05 11:05:13.343 9845-9851 rgy.app.staging nl.***.app.staging W userfaultfd: MOVE ioctl seems unsupported: Try again
2026-08-05 11:05:13.353 9845-9913 ESP nl.***.app.staging D Does not have permissions
2026-08-05 11:05:13.355 9845-9851 rgy.app.staging nl.***.app.staging I Background concurrent mark compact GC freed 5677KB AllocSpace bytes, 22(760KB) LOS objects, 49% free, 4543KB/9087KB, paused 172us,7.373ms total 39.901ms
2026-08-05 11:05:13.391 9845-9845 ThemeUtils nl.***.app.staging E View class androidx.appcompat.widget.AppCompatTextView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
2026-08-05 11:05:13.396 9845-9845 AndroidRuntime nl.***.app.staging D Shutting down VM
2026-08-05 11:05:13.398 9845-9845 AndroidRuntime nl.***.app.staging E FATAL EXCEPTION: main
Process: nl.***.app.staging, PID: 9845
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:902)
at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:865)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:748)
at androidx.appcompat.app.AppCompatDialog.setContentView(AppCompatDialog.java:96)
at androidx.appcompat.app.AlertController.installContent(AlertController.java:232)
at androidx.appcompat.app.AlertDialog.onCreate(AlertDialog.java:278)
at android.app.Dialog.dispatchOnCreate(Dialog.java:436)
at android.app.Dialog.show(Dialog.java:325)
at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1008)
at io.openremote.orlib.ui.PermissionDisclosures.show$lambda$3(PermissionDisclosures.kt:32)
at io.openremote.orlib.ui.PermissionDisclosures$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:1070)
at android.os.Handler.dispatchMessage(Handler.java:125)
at android.os.Looper.dispatchMessage(Looper.java:333)
at android.os.Looper.loopOnce(Looper.java:263)
at android.os.Looper.loop(Looper.java:367)
at android.app.ActivityThread.main(ActivityThread.java:9287)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:566)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
Description
Both on Android 12 and Android 16, the app crashes when it wants to prompt Bluetooth permission.
It probably has to do with the recent changes in #66; because it works fine in
1.5.0, but is broken in1.5.1.This bug was reproduced in a custom project that has a custom app.
After bumping the
openremote-or-libversion from1.5.0to1.5.1, this fatal crash occurs.Assigning @Miggets7, as he is the creator of #66, but feel free to assign to someone else.
Crash logs
(censored the app package name, because of client information)