InflateException - 浮动操作按钮

Posted

技术标签:

【中文标题】InflateException - 浮动操作按钮【英文标题】:InflateException - Floating Action Button 【发布时间】:2018-10-18 03:08:39 【问题描述】:

我的应用程序收到此错误

膨胀类 android.support.design.widget.FloatingActionButton 时出错

我在互联网上搜索错误我尝试了所有方法,但没有看到我的错误。我将不胜感激。

这是我的 xml 文件。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/bg_call_incoming"
android:orientation="vertical">
           ...
           <android.support.design.widget.FloatingActionButton//line80 
            android:id="@+id/fabCallButton"
            android:layout_
            android:layout_
            android:scaleType="center"
            app:srcCompat="@drawable/ic_call_white_24dp"
            app:tint="#004684"
            app:rippleColor="@color/ripple_color"
            tools:ignore="VectorDrawableCompat" />
            ...

Build.gradle:

dependencies 
    implementation fileTree(dir: 'libs',include: ['*.jar'])
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.google.firebase:firebase-messaging:15.0.0'

日志:

05-08 10:54:58.380 4808-4808/io.nitro.uzmaniaraexpert E/AndroidRuntime: FATAL EXCEPTION: main 进程:io.nitro.uzmaniaraexpert,PID:4808 java.lang.RuntimeException:无法启动活动 ComponentInfoio.nitro.uzmaniaraexpert/io.nitro.uzmaniaraexpert.DenemeAnimation:android.view.InflateException:二进制 XML 文件行#80:二进制 XML 文件行#80:膨胀类错误android.support.design.widget.FloatingActionButton 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2434) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 在 android.app.ActivityThread.access$900(ActivityThread.java:157) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5551) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 引起:android.view.InflateException:二进制 XML 文件第 80 行:二进制 XML 文件第 80 行:错误膨胀类 android.support.design.widget.FloatingActionButton 在 android.view.LayoutInflater.inflate(LayoutInflater.java:539) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 io.nitro.uzmaniaraexpert.DenemeAnimation.onCreate(DenemeAnimation.java:56) 在 android.app.Activity.performCreate(Activity.java:6272) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 在 android.app.ActivityThread.access$900(ActivityThread.java:157) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5551) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 引起:android.view.InflateException:二进制 XML 文件第 80 行:错误膨胀类 android.support.design.widget.FloatingActionButton 在 android.view.LayoutInflater.createView(LayoutInflater.java:645) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 io.nitro.uzmaniaraexpert.DenemeAnimation.onCreate(DenemeAnimation.java:56) 在 android.app.Activity.performCreate(Activity.java:6272) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 在 android.app.ActivityThread.access$900(ActivityThread.java:157) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5551) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Constructor.newInstance(Native Method) 在 android.view.LayoutInflater.createView(LayoutInflater.java:619) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 io.nitro.uzmaniaraexpert.DenemeAnimation.onCreate(DenemeAnimation.java:56) 在 android.app.Activity.performCreate(Activity.java:6272) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 在 android.app.ActivityThread.access$900(ActivityThread.java:157) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5551) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 原因:android.content.res.Resources$NotFoundException:资源 ID #0x7f080074 在 android.content.res.Resources.getValue(Resources.java:1401) 在 android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:328) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:193) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:186) 在 android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100) 在 android.support.v7.widget.AppCompatImageHelper.loadFromAttributes(AppCompatImageHelper.java:58) 在 android.support.design.widget.FloatingActionButton.(FloatingActionButton.java:184) 在 android.support.design.widget.FloatingActionButton.(FloatingActionButton.java:158) 在 java.lang.reflect.Constructor.newInstance(Native Method) 在 android.view.LayoutInflater.createView(LayoutInflater.java:619) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 io.nitro.uzmaniaraexpert.DenemeAnimation.onCreate(DenemeAnimation.java:56) 在 android.app.Activity.performCreate(Activity.java:6272) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 在 android.app.ActivityThread.access$900(ActivityThread.java:157) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5551) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)

【问题讨论】:

根据错误日志 -Binary XML file line #80 - 你在 xml 文件的第 80 行有什么? 我编辑了我的问题,我删除了 xml 上不必要的图像,以缩短添加浮动按钮后出现的问题错误。 也许是这个? ***.com/a/37020077/4255978,或者这个 - ***.com/a/30895974/4255978 您可能会收到此错误,因为您在 FAB 按钮中使用矢量图像 我尝试更改图像和 backgroundTint 但它不起作用我意识到在样式文件中我得到主题符号无法解析错误。如果我删除它的工作,但是。符号无法解决错误不会消失。我尝试清理 gradle,删除并重新下载,但我仍然收到主题无法解决错误。 【参考方案1】:

替换

app:tint="#004684"

app:backgroundTint="#004684"

【讨论】:

以上是关于InflateException - 浮动操作按钮的主要内容,如果未能解决你的问题,请参考以下文章

在 ListView 顶部包含浮动操作按钮

使用 Android 设计支持库中的浮动操作按钮的浮动操作菜单实现 [关闭]

在模拟器上找不到浮动操作按钮

使用浮动操作按钮更改图标颜色

在 Flutter 中定位两个浮动操作按钮

如何更改浮动操作按钮的颜色?