Skip to content

Fatal crash when initializing ESPProvisionProvider without bluetooth permission #71

Description

@MartinaeyNL

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)

Metadata

Metadata

Assignees

Labels

BugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions