Android支持库浮动操作按钮异常

面积

我遇到有关的奇怪行为android.support.design.widget.FloatingActionButton我在Google上搜索了一下,但没有发现此组件的此类错误。

仅当我在StrictMode启用android的情况下进行构建时才会发生这种情况我得到以下异常:

CoordinatorLayout﹕ Default behavior class android.support.design.widget.FloatingActionButton$a could not be instantiated. Did you forget a default constructor?
java.lang.InstantiationException: can't instantiate class android.support.design.widget.FloatingActionButton$a; no empty constructor
        at java.lang.Class.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1130)
        at android.support.design.widget.CoordinatorLayout.a(CoordinatorLayout.java:503)
        at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:579)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:16831)
        at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:868)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2586)
        at android.view.View.measure(View.java:16831)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2189)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1352)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1535)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1249)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6364)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791)
        at android.view.Choreographer.doCallbacks(Choreographer.java:591)
        at android.view.Choreographer.doFrame(Choreographer.java:561)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777)
        at android.os.Handler.handleCallback(Handler.java:730)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:5419)
        at java.lang.reflect.Method.invokeN

但是,这不会使我的应用程序崩溃或引发任何可见错误。每次创建具有FAB的活动时都将引发该异常,但是FAB会呈现并正常运行。如果我单击它,它会执行onClickListener它应该执行的操作。

这是我的Android支持库依赖项,在我的目录中build.gradle

compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:design:22.2.0'

这就是我在xml布局中使用FAB的方式:

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <fragment
        android:id="@+id/home_toolbar_wallet"
        android:name="my.fragment.class"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    (...)
</LinearLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/home_floating_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_add_white_18dp"
    android:layout_margin="@dimen/action_button_margin"
    app:borderWidth="0dp"
    app:layout_anchor="@id/home_toolbar_wallet"
    app:layout_anchorGravity="bottom|right|end"/>

如果您想知道,这就是我启用的方式StrictMode

StrictMode.ThreadPolicy.Builder builder = new StrictMode.ThreadPolicy.Builder builder = new StrictMode.ThreadPolicy.Builder()
    .detectAll()
    .penaltyLog();
if (Utils.hasHoneycomb()) {
    builder.penaltyFlashScreen();
}
StrictMode.setThreadPolicy(builder.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll()
    .penaltyLog()
    .build());

有人遇到过这个吗?

二元

这可能是由于proguard混淆了您的代码。您是否尝试过将此规则添加到Proguard规则中?

-keepclassmembers class android.support.design.widget.FloatingActionButton$Behavior { public <init>(); }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关闭Android的浮动操作按钮

来自分类Dev

关闭Android的浮动操作按钮

来自分类Dev

无法使用Xamarin.Android中的“浮动操作”按钮激活JNI处理异常

来自分类Dev

Android浮动操作按钮API 19(KitKat)

来自分类Dev

Android L-浮动操作按钮(FAB)

来自分类Dev

OnClick浮动操作按钮

来自分类Dev

Android-对话框片段顶部的浮动操作按钮

来自分类Dev

可以在Android上增加“浮动操作按钮”的大小吗?

来自分类Dev

Android浮动操作按钮打开小视图

来自分类Dev

Android浮动操作按钮未返回初始位置

来自分类Dev

Android Studio 1.5.1。渲染错误(浮动操作按钮)

来自分类Dev

Android层列表影响浮动操作按钮的位置

来自分类Dev

FAB(浮动操作按钮)不浮动

来自分类Dev

如何在Android中的浮动操作按钮中向菜单按钮添加操作

来自分类Dev

浮动操作按钮下的Admob

来自分类Dev

浮动操作按钮阻止横幅

来自分类Dev

浮动操作按钮效果不佳

来自分类Dev

浮动操作按钮中的边框

来自分类Dev

浮动操作按钮的行为随机

来自分类Dev

Fragment中的浮动操作按钮

来自分类Dev

无法“找到”浮动操作按钮

来自分类Dev

浮动按钮Android Lollipop

来自分类Dev

扩展的Android浮动按钮

来自分类Dev

Android动画浮动按钮

来自分类Dev

不支持的操作异常从SQLite android获取数据

来自分类Dev

我可以在Android Official Library中使用Android浮动操作按钮吗?

来自分类Dev

我可以在Android Official Library中使用Android浮动操作按钮吗?

来自分类Dev

从android支持库操作栏中删除/隐藏标题

来自分类Dev

Android浮动按钮未显示