I updated my android today and now the settings app won't open. I can access all settings through the search function of the launcher except Samsung specific ones.
I connected the phone to my pc to see the logs and here is the stack trace from logcat:
FATAL EXCEPTION: main
Process: com.android.settings, PID: 17254
java.lang.RuntimeException: Failed to call observer method
at androidx.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:226)
at androidx.lifecycle.ClassesInfoCache$CallbackInfo.invokeMethodsForEvent(ClassesInfoCache.java:194)
at androidx.lifecycle.ClassesInfoCache$CallbackInfo.invokeCallbacks(ClassesInfoCache.java:186)
at androidx.lifecycle.ReflectiveGenericLifecycleObserver.onStateChanged(ReflectiveGenericLifecycleObserver.java:37)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:361)
at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:300)
at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:339)
at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:145)
at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:131)
at com.android.settingslib.core.lifecycle.ObservablePreferenceFragment.onStart(ObservablePreferenceFragment.java:80)
at com.android.settings.dashboard.DashboardFragment.onStart(DashboardFragment.java:266)
at com.android.settings.homepage.TopLevelSettings.onStart(TopLevelSettings.java:192)
at androidx.fragment.app.Fragment.performStart(Fragment.java:2756)
at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:355)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1192)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1354)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1432)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1495)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2620)
at androidx.fragment.app.FragmentManager.dispatchStart(FragmentManager.java:2578)
at androidx.fragment.app.FragmentController.dispatchStart(FragmentController.java:258)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:550)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
at android.app.Activity.performStart(Activity.java:8207)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3806)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2295)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:596)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
Caused by: java.lang.SecurityException:
Failed to find provider com.samsung.android.mobileservice.profileProvider for user 0; expected to find a valid ContentProvider for this authority
at android.os.Parcel.createExceptionOrNull(Parcel.java:2385)
at android.os.Parcel.createException(Parcel.java:2369)
at android.os.Parcel.readException(Parcel.java:2352)
at android.os.Parcel.readException(Parcel.java:2294)
at android.content.IContentService$Stub$Proxy.registerContentObserver(IContentService.java:1229)
at android.content.ContentResolver.registerContentObserver(ContentResolver.java:2630)
at android.content.ContentResolver.registerContentObserver(ContentResolver.java:2618)
at com.samsung.android.settings.homepage.TopLevelSamsungAccountPreferenceController.onStart(TopLevelSamsungAccountPreferenceController.java:95)
at com.android.settingslib.core.lifecycle.Lifecycle.onStart(Lifecycle.java:124)
at com.android.settingslib.core.lifecycle.Lifecycle.access$100(Lifecycle.java:55)
at com.android.settingslib.core.lifecycle.Lifecycle$LifecycleProxy.onLifecycleEvent(Lifecycle.java:222)
at java.lang.reflect.Method.invoke(Native Method)
at androidx.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:222)
... 36 more
Caused by: android.os.RemoteException: Remote stack zrace:
at com.android.server.content.ContentService.registerContentObserver(ContentService.java:388)
at android.content.IContentService$Stub.onTransact(IContentService.java:482)
at android.os.Binder.execTransactInternal(Binder.java:1190)
at android.os.Binder.execTransact(Binder.java:1159)
So the relevant part seems to be:
Caused by: java.lang.SecurityException:
Failed to find provider com.samsung.android.mobileservice.profileProvider for user 0; expected to find a valid ContentProvider for this authority
What I've tried so far:
- Restart the phone
- Restart the phone in safe mode
- Reinstall Samsung Experience Service
- Reinstall com.android.settings
- Reinstall com.samsung.android.mobileservice
I think because there are Samsung related settings in the settings main menu, it causes a crash. Any ideas on how to get the settings back?
PS: Please don't suggest a factory reset. That is cause for another headache.
PPS: Previously, I had uninstalled Samsung bloatware via "adb shell". But that had never caused problems. So maybe now one missing package could be the culprit?