diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index f021cc38a7cc..3c97cdddedb9 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -911aa7547ed732052f98b79f7b1584bd137bda43 +2e570ca393c844ada4d77b0210ce6a5bc20bcf82 diff --git a/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter_plugin_android_lifecycle_example/MainActivity.java b/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter_plugin_android_lifecycle_example/MainActivity.java index 1726aecbeddb..dbf585b59842 100644 --- a/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter_plugin_android_lifecycle_example/MainActivity.java +++ b/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter_plugin_android_lifecycle_example/MainActivity.java @@ -6,7 +6,6 @@ import android.util.Log; import androidx.lifecycle.Lifecycle; -import dev.flutter.plugins.integration_test.IntegrationTestPlugin; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; import io.flutter.embedding.engine.plugins.FlutterPlugin; @@ -19,8 +18,8 @@ public class MainActivity extends FlutterActivity { @Override public void configureFlutterEngine(FlutterEngine flutterEngine) { + super.configureFlutterEngine(flutterEngine); flutterEngine.getPlugins().add(new TestPlugin()); - flutterEngine.getPlugins().add(new IntegrationTestPlugin()); } private static class TestPlugin implements FlutterPlugin, ActivityAware { diff --git a/script/tool/lib/src/firebase_test_lab_command.dart b/script/tool/lib/src/firebase_test_lab_command.dart index 5d2ab937c351..e430d3007afe 100644 --- a/script/tool/lib/src/firebase_test_lab_command.dart +++ b/script/tool/lib/src/firebase_test_lab_command.dart @@ -245,22 +245,23 @@ class FirebaseTestLabCommand extends PackageLoopingCommand { /// /// Returns true if either gradlew was already present, or the build succeeds. Future _ensureGradleWrapperExists(GradleProject project) async { - if (!project.isConfigured()) { - print('Running flutter build apk...'); - final String experiment = getStringArg(kEnableExperiment); - final int exitCode = await processRunner.runAndStream( - flutterCommand, - [ - 'build', - 'apk', - '--config-only', - if (experiment.isNotEmpty) '--enable-experiment=$experiment', - ], - workingDir: project.androidDirectory); - - if (exitCode != 0) { - return false; - } + // Unconditionally re-run build with --debug --config-only, to ensure that + // the project is in a debug state even if it was previously configured. + print('Running flutter build apk...'); + final String experiment = getStringArg(kEnableExperiment); + final int exitCode = await processRunner.runAndStream( + flutterCommand, + [ + 'build', + 'apk', + '--debug', + '--config-only', + if (experiment.isNotEmpty) '--enable-experiment=$experiment', + ], + workingDir: project.androidDirectory); + + if (exitCode != 0) { + return false; } return true; } diff --git a/script/tool/test/firebase_test_lab_command_test.dart b/script/tool/test/firebase_test_lab_command_test.dart index 067bf9cbaf58..2630402dfbd9 100644 --- a/script/tool/test/firebase_test_lab_command_test.dart +++ b/script/tool/test/firebase_test_lab_command_test.dart @@ -164,6 +164,14 @@ public class MainActivityTest { expect( processRunner.recordedCalls, orderedEquals([ + ProcessCall( + 'flutter', + const ['build', 'apk', '--debug', '--config-only'], + plugin1 + .getExamples() + .first + .platformDirectory(FlutterPlatform.android) + .path), ProcessCall( 'gcloud', 'auth activate-service-account --key-file=/path/to/key' @@ -185,6 +193,14 @@ public class MainActivityTest { '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 7m --results-bucket=gs://a_bucket --results-dir=plugins_android_test/plugin1/buildId/testRunId/example/0/ --device model=redfin,version=30 --device model=seoul,version=26' .split(' '), '/packages/plugin1/example'), + ProcessCall( + 'flutter', + const ['build', 'apk', '--debug', '--config-only'], + plugin2 + .getExamples() + .first + .platformDirectory(FlutterPlatform.android) + .path), ProcessCall( '/packages/plugin2/example/android/gradlew', 'app:assembleAndroidTest -Pverbose=true'.split(' '), @@ -245,6 +261,14 @@ public class MainActivityTest { expect( processRunner.recordedCalls, orderedEquals([ + ProcessCall( + 'flutter', + const ['build', 'apk', '--debug', '--config-only'], + plugin + .getExamples() + .first + .platformDirectory(FlutterPlatform.android) + .path), ProcessCall( '/packages/plugin/example/android/gradlew', 'app:assembleAndroidTest -Pverbose=true'.split(' '), @@ -669,8 +693,12 @@ class MainActivityTest { orderedEquals([ ProcessCall( 'flutter', - 'build apk --config-only'.split(' '), - '/packages/plugin/example/android', + 'build apk --debug --config-only'.split(' '), + plugin + .getExamples() + .first + .platformDirectory(FlutterPlatform.android) + .path, ), ProcessCall( '/packages/plugin/example/android/gradlew', @@ -841,6 +869,20 @@ class MainActivityTest { expect( processRunner.recordedCalls, orderedEquals([ + ProcessCall( + 'flutter', + const [ + 'build', + 'apk', + '--debug', + '--config-only', + '--enable-experiment=exp1' + ], + plugin + .getExamples() + .first + .platformDirectory(FlutterPlatform.android) + .path), ProcessCall( '/packages/plugin/example/android/gradlew', 'app:assembleAndroidTest -Pverbose=true -Pextra-front-end-options=--enable-experiment%3Dexp1 -Pextra-gen-snapshot-options=--enable-experiment%3Dexp1'