I have a strange probem using the AppCompat Lib 22.2 with the new introduced: layout_behavior
If i use it with the value "@string/appbar_scrolling_view_behavior" , as described here Android Design Support Lib the application terminates with the following exception:
Could not inflate Behavior subclass android.support.design.widget.Settings
Caused by: java.lang.RuntimeException: Could not inflate Behavior subclass android.support.design.widget.Settings
Caused by: java.lang.ClassNotFoundException: android.support.design.widget.Settings
Caused by: java.lang.NoClassDefFoundError: android/support/design/widget/Settings
Caused by: java.lang.ClassNotFoundException: android.support.design.widget.Settings
If i change to :
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"
everything works fine.
What i'm missing ?
For others who encounter this exception and use proguard - you need to add following proguard rules:
-keep class android.support.design.widget.** { *; }
-keep interface android.support.design.widget.** { *; }
-dontwarn android.support.design.**
or if you don't want to keep all of the design library components you can use:
-keepattributes *Annotation*
-keep public class * extends android.support.design.widget.CoordinatorLayout.Behavior { *; }
-keep public class * extends android.support.design.widget.ViewOffsetBehavior { *; }
Another reason for this to be happening is when you're extending FloatingActionButton.Behavior and you don't have a (Context, AttributeSet) constructor. That happened to me with design library v. 23.0.1
Just add this constructor to your subclass:
public FloatingActionButtonBehaviorSubclass(Context context, AttributeSet attrs) {
super();
}
You should add design lib for your project.
compile 'com.android.support:design:22.2.0'
Check the sample https://github.com/chrisbanes/cheesesquare
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With