Android Studio Firebase聊天室运行崩溃:找不到FloatingActionButton类求助
Firebase聊天室项目启动闪退问题解决
问题描述
我是Android Studio新手,正在开发基于Firebase的聊天室项目。每次运行项目都会闪退无响应,报错信息如下:
Process: com.example.chatroomdemo3, PID: 6010 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chatroomdemo3/com.example.chatroomdemo3.MainActivity}: android.view.InflateException: Binary XML file line #14 in com.example.chatroomdemo3:layout/activity_main: Binary XML file line #14 in com.example.chatroomdemo3:layout/activity_main: Error inflating class android.support.design.widget.FloatingActionButton at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: android.view.InflateException: Binary XML file line #14 in com.example.chatroomdemo3:layout/activity_main: Binary XML file line #14 in com.example.chatroomdemo3:layout/activity_main: Error inflating class android.support.design.widget.FloatingActionButton Caused by: android.view.InflateException: Binary XML file line #14 in com.example.chatroomdemo3:layout/activity_main: Error inflating class android.support.design.widget.FloatingActionButton Caused by: java.lang.ClassNotFoundException: android.support.design.widget.FloatingActionButton at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:454) at android.view.LayoutInflater.createView(LayoutInflater.java:813) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082) at android.view.LayoutInflater.inflate(LayoutInflater.java:680) at android.view.LayoutInflater.inflate(LayoutInflater.java:532) at android.view.LayoutInflater.inflate(LayoutInflater.java:479) at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:710) at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:195) at com.example.chatroomdemo3.MainActivity.onCreate(MainActivity.java:32) at android.app.Activity.performCreate(Activity.java:7994) at android.app.Activity.performCreate(Activity.java:7978) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 2022-09-20 17:50:29.871 6010-6010/com.example.chatroomdemo3 E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.FloatingActionButton" on path: DexPathList[[zip file "/data/app/~~ZjEoxav74b-XtewDIq5jeQ==/com.example.chatroomdemo3-pbmB3qrSrSLhR8HFlxAleA==/base.apk"],nativeLibraryDirectories=[/data/app/~~ZjEoxav74b-XtewDIq5jeQ==/com.example.chatroomdemo3-pbmB3qrSrSLhR8HFlxAleA==/lib/x86, /system/lib, /system_ext/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 28 more 2022-09-20 17:50:29.900 6010-6010/com.example.chatroomdemo3 I/Process: Sending signal. PID: 6010 SIG: 9
问题原因
报错核心是ClassNotFoundException——找不到旧版Support库的android.support.design.widget.FloatingActionButton类。你的项目已经使用AndroidX(报错里出现了androidx.appcompat.app.AppCompatActivity),但布局文件仍引用旧版Support库控件,导致类加载失败。
解决方案
- 修改布局文件控件类名
打开activity_main.xml,找到第14行的FloatingActionButton,将类名替换为AndroidX版本:
<com.google.android.material.floatingactionbutton.FloatingActionButton <!-- 原有属性保持不变 --> />
- 添加Material组件依赖
打开模块级build.gradle文件(通常为app/build.gradle),检查并添加Material组件依赖:
dependencies { // 其他依赖保留 implementation 'com.google.android.material:material:1.9.0' // 可替换为最新版本号 }
- 同步并重建项目
- 点击Android Studio工具栏的「Sync Project with Gradle Files」按钮同步依赖。
- 执行「Build -> Clean Project」清理项目。
- 执行「Build -> Rebuild Project」重新构建项目。
完成以上步骤后重新运行项目,即可解决闪退问题。
内容的提问来源于stack exchange,提问作者極致狂人
相关产品推荐
相关产品推荐

