Android 28+Firebase16环境下BottomNavigationView无法实例化求助
针对你在Android 28 + Firebase 16项目中遇到的BottomNavigationView无法实例化的问题,我整理了几个可行的排查和解决步骤:
1. 移除重复的依赖项
看你的app级build.gradle里,firebase-core被重复添加了两次,这可能导致依赖冲突,先删掉其中一个:
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //noinspection GradleCompatible implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:design:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' // 保留一个firebase-core即可 implementation 'com.google.firebase:firebase-core:16.0.6' implementation 'com.android.support:animated-vector-drawable:28.0.0' implementation 'com.android.support:support-media-compat:28.0.0' implementation 'com.android.support:cardview-v7:28.0.0' implementation 'com.google.firebase:firebase-database:16.0.6' implementation 'com.rengwuxian.materialedittext:library:2.1.4' } apply plugin: 'com.google.gms.google-services'
2. 确认布局文件中的控件引用正确
确保你布局里的BottomNavigationView是使用support库的版本,而不是AndroidX的(因为你还在使用support 28,没有迁移到AndroidX):
<android.support.design.widget.BottomNavigationView android:id="@+id/bottom_nav" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" app:menu="@menu/bottom_nav_menu"/>
3. 验证主题的正确应用
你的AppTheme继承自Theme.AppCompat.Light.NoActionBar是符合要求的,但要确保AndroidManifest.xml中对应的Activity确实使用了这个主题,比如:
<activity android:name=".MainActivity" android:theme="@style/AppTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
4. 清理缓存并重建项目
Android Studio的缓存有时候会导致类加载异常,执行以下步骤:
- 点击菜单栏的
Build->Clean Project - 然后点击
Build->Rebuild Project - 重启Android Studio,再尝试预览或运行项目
5. 检查gradle插件与依赖版本兼容性
你的项目级build.gradle中,com.android.tools.build:gradle:3.2.1和support库28.0.0是匹配的,com.google.gms:google-services:4.2.0和Firebase 16.x版本也兼容,这部分没问题,但如果上述步骤都无效,可以尝试更新gradle插件到3.3.2(仍然兼容support 28):
classpath 'com.android.tools.build:gradle:3.3.2' classpath 'com.google.gms:google-services:4.2.0'
按照这些步骤逐一排查,应该能解决无法实例化BottomNavigationView的问题。
内容的提问来源于stack exchange,提问作者Shaii
相关产品推荐
相关产品推荐

