appcompat-v7 v21.0.0 causing crash on Samsung devices with Android v4.2.2

后端 未结 9 854
北海茫月
北海茫月 2020-12-04 11:39

We just changed our application to use the appcompat-v7 support library in order to take advantage of the support actionbar and support Material themes. Using <

相关标签:
9条回答
  • As #150 from https://code.google.com/p/android/issues/detail?id=78377 said

    Because careful with -keep class !android.support.v7.internal.view.menu.**. There are a number of classes in there which are referenced from the appcompat's resources.

    The better solution is add the following lines instead:

    -keep class !android.support.v7.internal.view.menu.MenuBuilder, !android.support.v7.internal.view.menu.SubMenuBuilder, android.support.v7.** { *; }
    -keep interface android.support.v7.** { *; }
    
    0 讨论(0)
  • 2020-12-04 12:17

    Replace

    public class class_name extends AppCompatActivity
    {
    
    .........
    
    }
    

    With

    public class class_name extends Activity
    {
    
    .........
    
    }
    

    This helped me.

    0 讨论(0)
  • 2020-12-04 12:22

    For all having this problem, only workaround so far seems to be using proguard. Checkout discussion at https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=78377

    0 讨论(0)
  • 2020-12-04 12:27

    I found the proper solution here: https://stackoverflow.com/a/26641388/1266123

    By using

    -keep class !android.support.v7.internal.view.menu.**,android.support.v7.** {*;}
    

    instead of

    -keep class android.support.v7.** {*;}
    
    0 讨论(0)
  • 2020-12-04 12:30

    Since Appcompat 23.1.1 the .internal package in the AppCompat jar was removed.

    Updated fix using proguard:

    #FOR APPCOMPAT 23.1.1:
    -keep class !android.support.v7.view.menu.*MenuBuilder*, android.support.v7.** { *; }
    -keep interface android.support.v7.* { *; }
    
    0 讨论(0)
  • 2020-12-04 12:31

    If anyone interested in using a solution without progaurd .

    Read the link i have tried this in one of my apps which gave the exception on setSupportActionBar(toolbar) in onCreate().

    Its pretty simple just add try catch block around the call

    try {
    
     setSupportActionBar(toolbar);
    
    } catch (Throwable t) {
    
     // WTF SAMSUNG!
    
    }
    
    0 讨论(0)
提交回复
热议问题