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

Android Cucumber+Espresso测试因com.google.android.material库崩溃求助

解决Cucumber+Espresso测试中Material组件Inflate崩溃问题

针对你遇到的使用Material组件时测试崩溃的问题,以下是几个常见的排查和解决方向:

  • 统一Material库版本
    主工程和测试依赖中的com.google.android.material版本必须完全一致,否则会出现类加载冲突或资源不匹配。检查你的Module级别build.gradle:

    // 主工程依赖
    implementation 'com.google.android.material:material:1.9.0'
    // 测试依赖
    androidTestImplementation 'com.google.android.material:material:1.9.0'
    
  • 配置测试应用的Material主题
    Material组件要求应用主题继承自Theme.MaterialComponents系列,测试APK默认主题可能不满足这个要求。在src/androidTest/res/values/styles.xml中添加测试主题:

    <resources>
        <style name="TestMaterialTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
            <item name="colorPrimary">@color/design_default_color_primary</item>
            <item name="colorAccent">@color/design_default_color_accent</item>
        </style>
    </resources>
    

    然后在src/androidTest/AndroidManifest.xml中指定该主题:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
        <application android:theme="@style/TestMaterialTheme" />
    </manifest>
    
  • 清理构建缓存
    缓存的旧资源或编译产物可能导致资源合并异常,执行清理后重新运行测试:

    ./gradlew clean connectedMyFlavorAndroidTest -Pcucumber -Pscenario="My Scenario"
    
  • 验证依赖版本兼容性
    确保Cucumber和Espresso的版本组合是稳定兼容的,推荐使用最新的稳定版:

    androidTestImplementation 'io.cucumber:cucumber-android:7.14.0'
    androidTestImplementation 'io.cucumber:cucumber-junit:7.14.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    
  • 排查深层崩溃原因
    查看完整的崩溃栈跟踪,InflateException通常是表层错误,下方的Caused By会给出具体原因:比如主题属性缺失、资源引用错误、类冲突等。如果栈中出现The style on this component requires your app theme to be Theme.MaterialComponents,直接按主题配置的方案修复即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:05:06