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

Firebase Test Lab报错:测试APK不含清单指定的测试运行器类

解决方案

1. 统一测试Runner配置

你的测试类标注了@RunWith(FlutterTestRunner.class),但Android配置里的testInstrumentationRunner仍为androidx.test.runner.AndroidJunitRunner,导致配置与实际使用的Runner不匹配。需修改以下两处:

  • 修改android/app/build.gradle的defaultConfig:
defaultConfig {
    testInstrumentationRunner "dev.flutter.plugins.integration_test.FlutterTestRunner"
}
  • 同步更新AndroidManifest中的instrumentation节点:
<instrumentation
    android:name="dev.flutter.plugins.integration_test.FlutterTestRunner"
    android:targetPackage="com.hello.integration">
</instrumentation>

2. 补充集成测试依赖

在android/app/build.gradle的dependencies块中添加Flutter集成测试所需依赖:

androidTestImplementation 'dev.flutter.plugins:flutter_plugin_android_lifecycle:2.0.15'
androidTestImplementation project(':integration_test')

注:若项目未初始化集成测试模块,先执行flutter create --template=plugin integration_test完成配置。

3. 修正构建脚本与测试命令

调整构建步骤

原脚本构建的是普通AndroidTest APK,Flutter集成测试需关联指定测试文件构建,修改脚本为:

pushd android
flutter build apk --debug
./gradlew app:assembleAndroidTest -Ptarget=integration_test/app_test.dart
popd

优化Firebase测试命令

移除--use-orchestrator参数(FlutterTestRunner与该工具兼容性较差),命令修改为:

gcloud firebase test android run --type instrumentation \
 --app build/app/outputs/apk/debug/app-debug.apk \
 --test build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
 --timeout 3m \
 --results-bucket=gs://project_bucket_name \
 --results-dir=tests/firebase 

4. 清理冲突测试代码

删除androidTest目录下的MainActivityTest类,Flutter集成测试无需编写原生Android测试类,该文件会与Flutter测试Runner产生冲突。

验证配置有效性

用aapt工具检查测试APK是否包含正确的Runner类:

aapt dump xmltree build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk AndroidManifest.xml | grep "FlutterTestRunner"

若能匹配到对应节点,说明配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:52:24