You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Gradle后MiniControllerFragment报ClassNotFoundException求助

解决Cast MiniControllerFragment的ClassNotFoundException问题

我之前也碰到过几乎一模一样的问题,这个错误Failed resolution of: Lcom/google/android/gms/common/internal/zzbq本质是依赖版本冲突导致的,结合你的配置来看,主要有两个核心问题:

问题分析

  1. Google Play服务与Firebase版本不匹配:你使用了非常老的play-services-cast-framework:11.6.0,但同时引入了17.x版本的Firebase依赖(比如firebase-analytics:17.4.1)。Firebase会依赖较新版本的Google Play服务核心库,老版本的Cast框架找不到新库里已经被重构/移除的zzbq类,从而触发ClassNotFoundException。
  2. Support Library与AndroidX混用:你的主依赖用的是Support Library 27.0.2,但测试依赖却使用了AndroidX库(比如androidx.test:core:1.1.0),这种混用会导致Dex合并异常,进一步加剧类查找失败的问题。

具体解决步骤

1. 统一Google Play服务与Firebase的版本

推荐使用Google的**Bill of Materials (BOM)**来自动管理所有Play服务和Firebase依赖的版本,避免手动匹配版本的麻烦。

修改项目根目录的build.gradle:

allprojects {
    repositories {
        google()
        // 其他仓库...
    }
}

修改app模块的build.gradle:

dependencies {
    // 先添加Google BOM,它会统一所有Play服务和Firebase的版本
    implementation platform('com.google.firebase:firebase-bom:32.7.0')
    
    // Firebase依赖不需要再写版本号,由BOM自动管理
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-crashlytics'
    implementation 'com.google.firebase:firebase-core'
    
    // Cast框架依赖也由BOM管理版本,移除原有的11.6.0版本号
    implementation 'com.google.android.gms:play-services-cast-framework'
    
    // 你的其他依赖保持不变...
}

2. 修复Support Library与AndroidX的混用问题

你有两个选择:要么继续使用Support Library,要么迁移到AndroidX。

选项A:继续使用Support Library

把所有AndroidX的测试依赖替换为对应的Support Library版本:

testImplementation 'junit:junit:4.12'
// 替换AndroidX测试依赖为Support Library版本
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support.test:rules:1.0.2'

选项B:迁移到AndroidX(推荐长期方案)

在项目根目录的gradle.properties中添加:

android.useAndroidX=true
android.enableJetifier=true

然后把所有Support Library依赖替换为对应的AndroidX库,例如:

  • com.android.support:appcompat-v7:27.0.2 → androidx.appcompat:appcompat:1.6.1
  • com.android.support:design:27.0.2 → com.google.android.material:material:1.11.0
  • com.android.support:mediarouter-v7:27.0.2 → androidx.mediarouter:mediarouter:1.3.0

3. 确保Multidex配置正确

如果你的项目启用了Multidex,确保在自定义Application类中:

public class MyApp extends MultiDexApplication {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

或者在AndroidManifest.xml中指定Application类:

<application
    android:name=".MyApp"
    // 其他配置...
>

4. 清理并重新构建项目

执行以下命令清理缓存,然后重新编译:

./gradlew clean
./gradlew assembleDebug

内容的提问来源于stack exchange,提问作者Pavan Pyati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 20:17:48