集成AndPermission手机权限请求库,点击拒绝时出现的崩溃,百度了一下,靠谱点的方法就是在Manifest.xml中添加Theme,但是我配置了,还是不行。最后发现是检查权限时的Context我传的是getApplicationContext(),把getApplicationContext()改成Activity就可以了,编写的代码一定要仔细ReView,排查了一个多小时,特此记录一下。
下面附上bug文案:
[2020-01-1613:32:59:293]java.lang.RuntimeException: Error receiving broadcast Intent { act=com.linglong.android.andpermission.bridge.Thread-45 flg=0x10 } in com.yanzhenjie.permission.bridge.Messenger@cf961c6
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1143)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6375)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:696)
at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:659)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:552)
at androidx.appcompat.app.AppCompatDialog.setContentView(AppCompatDialog.java:95)
at com.yanzhenjie.permission.task.WaitDialog.<init>(WaitDialog.java:32)
at com.yanzhenjie.permission.task.TaskExecutor.<init>(TaskExecutor.java:35)
at com.yanzhenjie.permission.runtime.MRequest$1.<init>(MRequest.java:101)
at com.yanzhenjie.permission.runtime.MRequest.onCallback(MRequest.java:101)
at com.yanzhenjie.permission.bridge.RequestExecutor.onCallback(RequestExecutor.java:115)
at com.yanzhenjie.permission.bridge.Messenger.onReceive(Messenger.java:54)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1133)
... 7 more