Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用AppCompat';布局行为';与'@字符串/appbar_滚动_查看_行为';抛出异常_Android_Android Appcompat - Fatal编程技术网

Android 使用AppCompat';布局行为';与'@字符串/appbar_滚动_查看_行为';抛出异常

Android 使用AppCompat';布局行为';与'@字符串/appbar_滚动_查看_行为';抛出异常,android,android-appcompat,Android,Android Appcompat,我在使用AppCompat Lib 22.2时遇到了一个奇怪的问题:layout_行为 如果我将其与值“@string/appbar\u scrolling\u view\u behavior”一起使用,如本文所述,应用程序将终止,出现以下异常: Could not inflate Behavior subclass android.support.design.widget.Settings Caused by: java.lang.RuntimeException: Could n

我在使用AppCompat Lib 22.2时遇到了一个奇怪的问题:layout_行为

如果我将其与值“@string/appbar\u scrolling\u view\u behavior”一起使用,如本文所述,应用程序将终止,出现以下异常:

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
如果我改为:

app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"
一切正常


我缺少什么?

您应该为项目添加设计库

compile 'com.android.support:design:22.2.0'

对于遇到此异常并使用proguard的其他人,请检查示例

——您需要添加以下proguard规则:

-keep class android.support.design.widget.** { *; }
-keep interface android.support.design.widget.** { *; }
-dontwarn android.support.design.**
或者,如果不想保留所有设计库组件,可以使用:

-keepattributes *Annotation*
-keep public class * extends android.support.design.widget.CoordinatorLayout.Behavior { *; }
-keep public class * extends android.support.design.widget.ViewOffsetBehavior { *; }

对于仅在使用proguard时使用getting的开发人员,只需在proguard规则文件中添加一行即可:

-keep public class * extends android.support.design.widget.CoordinatorLayout$Behavior { *; }

发生这种情况的另一个原因是,当您扩展FloatingActionButton.Behavior而没有(Context,AttributeSet)构造函数时。我在设计库v中遇到过这种情况。23.0.1

只需将此构造函数添加到子类:

public FloatingActionButtonBehaviorSubclass(Context context, AttributeSet attrs) {
    super();
}

今天将项目迁移到Androidx后,我遇到了这个错误

似乎我的string.xml文件中有一个字符串。我不得不删除这条线

<string name="appbar_scrolling_view_behavior" translatable="false">android.support.design.widget.AppBarLayout$ScrollingViewBehavior</string>
android.support.design.widget.AppBarLayout$ScrollingViewBehavior
它应该只链接到values.xml文件,而不是string.xml文件。

app:layout_behavior=“@string/appbar_scrolling_view_behavior”应仅链接到values.xml(Ctrl+B)

com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior

您正在使用ProGuard吗?嗨,不,我没有使用ProGuard。看我的身材。格雷德:真丢人。我一定是不小心将字符串导出到了string.xml。我也遇到了同样的问题,它确实是proguard。最后一行是不必要的,因为它将保留在第2行中。重要的一点是强制重新生成应用程序。在我的系统上,没有使用更新的ProGuard设置;我对BottomSheetBehavior也有同样的问题。我认为对您的构造函数的相应超级调用应该是super(context,attrs);而不是这个。支持库版本的
FloatingActionButton.Behavior
(至少在我当前使用的23.2.0中)不会覆盖任何构造函数,因此无参数的构造函数是唯一可用的。
<string name="appbar_scrolling_view_behavior" translatable="false">com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior</string>