My app crashes on an android 11 device when I try to show a toast from a fragment by clicking a button in the adapter. I have an interface through which the toast is shown.
The error log is:
java.lang.SecurityException: Call from user 0 as user 8333 without permission INTERACT_ACROSS_USERS or INTERACT_ACROSS_USERS_FULL not allowed.
at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
at android.os.Parcel.createException(Parcel.java:2357)
at android.os.Parcel.readException(Parcel.java:2340)
at android.os.Parcel.readException(Parcel.java:2282)
at android.view.accessibility.IAccessibilityManager$Stub$Proxy.addClient(IAccessibilityManager.java:603)
at android.view.accessibility.AccessibilityManager.tryConnectToServiceLocked(AccessibilityManager.java:1538)
at android.view.accessibility.AccessibilityManager.<init>(AccessibilityManager.java:458)
at android.widget.ToastPresenter.<init>(ToastPresenter.java:92)
at android.widget.Toast$TN.<init>(Toast.java:615)
at android.widget.Toast.<init>(Toast.java:167)
at android.widget.Toast.makeText(Toast.java:492)
at android.widget.Toast.makeText(Toast.java:480)
at com.sploot.screens.userProfilePublic.fragments.TestimonialExpertProfileFragment$adapterActions$1.onTestimonialPosted(TestimonialExpertProfileFragment.kt:94)
at com.sploot.screens.userProfilePublic.adapters.TestimonialsAdapter.onBindViewHolder$lambda-2$lambda-1(TestimonialsAdapter.kt:102)
at com.sploot.screens.userProfilePublic.adapters.TestimonialsAdapter.$r8$lambda$Na_Zd8UOkCt7BmukBsMj_gDTmPA(Unknown Source:0)
at com.sploot.screens.userProfilePublic.adapters.TestimonialsAdapter$$ExternalSyntheticLambda0.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7520)
at android.view.View.performClickInternal(View.java:7489)
at android.view.View.access$3600(View.java:826)
at android.view.View$PerformClick.run(View.java:28555)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:233)
at android.app.ActivityThread.main(ActivityThread.java:8010)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.accessibility.AccessibilitySecurityPolicy.resolveCallingUserIdEnforcingPermissionsLocked(AccessibilitySecurityPolicy.java:404)
at com.android.server.accessibility.AccessibilityManagerService.addClient(AccessibilityManagerService.java:623)
at android.view.accessibility.IAccessibilityManager$Stub.onTransact(IAccessibilityManager.java:292)
at android.os.Binder.execTransactInternal(Binder.java:1165)
at android.os.Binder.execTransact(Binder.java:1134)
Adapter code:
binding.postBtn.setOnClickListener{
actions?.onTestimonialPosted(binding.testimonialEt.text.toString())
}
actions is an interface
Fagment code:
private val adapterActions = object : TestimonialAdapterActions{
override fun onTestimonialPosted(content: String) {
postTestimonial.expertId = userId
postTestimonial.userId = userModel?.id ?: 0
postTestimonial.content = content
CoroutineScope(Dispatchers.Main).launch {
val resp = apiManager.postTestimonial(postTestimonial, userId, requireContext())
if(resp.getInt("status") != 0){
Toast.makeText(requireContext(), "Success", Toast.LENGTH_SHORT).show()
testimonialsAdapter.refresh()
}
else{
Toast.makeText(requireContext(), "Something went wrong!", Toast.LENGTH_SHORT).show()
}
}
}
}
App crashes on either toast. But this works fine on my emulator which is on Android 12. It crashes on Android 11 (didn't check for lower versions). TargetSdk is 32.
If any other details are required let me know.
Thanks in advance.