java.lang.IllegalAccessError: Method ‘boolean android.view.View.awakenScrollBars()‘ is inaccessible

问题:
java.lang.IllegalAccessError: Method ‘boolean android.view.View.awakenScrollBars()’ is inaccessible to class 'androidx.recyclerview.widget.RecyclerView

   java.lang.IllegalAccessError: Method 'boolean android.view.View.awakenScrollBars()' is inaccessible to class 'androidx.recyclerview.widget.RecyclerView$d0' (declaration of 'androidx.recyclerview.widget.RecyclerView$d0' appears in /system/app/DidiMonaChargeUser/DidiMonaChargeUser.apk)
        at androidx.recyclerview.widget.RecyclerView$d0.run(RecyclerView.java:45)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
        at android.view.Choreographer.doCallbacks(Choreographer.java:796)
        at android.view.Choreographer.doFrame(Choreographer.java:727)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:222)
        at android.app.ActivityThread.main(ActivityThread.java:7665)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

复线步骤:
debug包没发现问题,但是在用release包测试必现崩溃,怀疑是混淆导致的问题

解决方案:

# 保留androidx下的所有类及其内部类
-keep class androidx.** {
    
    *;}
-keep public class * extends androidx.**
-keep interface androidx.** {
    
    *;}
-keep class com.google.android.material.** {
    
    *;}
-dontwarn androidx.**
-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**

参考文章:
原文链接:https://blog.csdn.net/MirkoWug/article/details/118107383

猜你喜欢

转载自blog.csdn.net/weixin_38687303/article/details/129025726
今日推荐