zoukankan      html  css  js  c++  java
  • 关于Android 8.0java.lang.SecurityException: Permission Denial错误的解决方法

    背景

    当我在Android 7.0及以下手机运行启动页,进行Activity跳转的时候,完美跳转到对应的目标Activity。
    但当在Android 8.0及以上手机进行Activity跳转时,会爆如下错误:

     java.lang.SecurityException: Permission Denial: null asks to run as user 450 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL or android.permission.INTERACT_ACROSS_USERS
                                                                 at android.os.Parcel.readException(Parcel.java:1942)
                                                                 at android.os.Parcel.readException(Parcel.java:1888)
                                                                 at android.view.autofill.IAutoFillManager$Stub$Proxy.addClient(IAutoFillManager.java:326)
                                                                 at android.view.autofill.AutofillManager.ensureServiceClientAddedIfNeededLocked(AutofillManager.java:896)
                                                                 at android.view.autofill.AutofillManager.notifyViewExited(AutofillManager.java:487)
                                                                 at android.view.View.notifyEnterOrExitForAutoFillIfNeeded(View.java:6945)
                                                                 at android.view.View.dispatchAttachedToWindow(View.java:17413)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3326)
                                                                 at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1658)
                                                                 at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1386)
                                                                 at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6733)
                                                                 at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
                                                                 at android.view.Choreographer.doCallbacks(Choreographer.java:723)
                                                                 at android.view.Choreographer.doFrame(Choreographer.java:658)
                                                                 at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
                                                                 at android.os.Handler.handleCallback(Handler.java:789)
                                                                 at android.os.Handler.dispatchMessage(Handler.java:98)
    

    常规解决方法

    StackOverFlow上面的方法增加权限

    <permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>
    

    发现并没有什么作用!!!!

    我的解决方法

    解决历程

    经过几个小时的排查发现,当我的目标Activity继承AppCompatActivity时 程序没有问题。当目标Activity继承我自己的BaseActivity(我这个BaseActivity最终也会继承AppCompatActivity)时就会出现问题。

    完美解决方法

    我自己的BaseActivity里面有一个用于获取用户ID的public void getUserId()方法,就是这货。
    当你把这个方法改过名字(例如:getLocalUserId())或者修改该**getUserId()private时,程序完美运行。
    因此,可以知道这个
    getUserId()*是在原基类里面有实现的。

    最后,希望我的方法能帮助到各位小伙伴。Thx~

  • 相关阅读:
    逆序对的相关问题:bzoj1831,bzoj2431
    bzoj3211,bzoj3038
    hdu 1179最大匹配
    hdu 3038带权并查集
    poj 1733离散化(map)+并查集
    codeforces 369B
    poj 1456
    POJ 1988相对偏移
    poj 1986tarjan模板题
    poj 1330lca模板题离线算法
  • 原文地址:https://www.cnblogs.com/sixFlower/p/9779511.html
Copyright © 2011-2022 走看看