v1.12.13+hotfix.4 cherry-picks (#46632)

* f264d6c Allow plugins that don't support the Android platform
* 55f0bdc Fix docker tag during upload as well
diff --git a/dev/ci/docker_linux/docker_push.sh b/dev/ci/docker_linux/docker_push.sh
index 0944137..cb3112e 100755
--- a/dev/ci/docker_linux/docker_push.sh
+++ b/dev/ci/docker_linux/docker_push.sh
@@ -2,5 +2,8 @@
 
 TAG="${CIRRUS_TAG:-latest}"
 
-sudo docker push "gcr.io/flutter-cirrus/build-flutter-image:$TAG"
+# Convert "+" to "-" to make hotfix tags legal Docker tag names.
+# See https://docs.docker.com/engine/reference/commandline/tag/
+TAG=${TAG/+/-}
 
+sudo docker push "gcr.io/flutter-cirrus/build-flutter-image:$TAG"
diff --git a/packages/flutter_tools/gradle/flutter.gradle b/packages/flutter_tools/gradle/flutter.gradle
index 173ba30..dcbf787 100644
--- a/packages/flutter_tools/gradle/flutter.gradle
+++ b/packages/flutter_tools/gradle/flutter.gradle
@@ -353,7 +353,7 @@
                 return
             }
             Project dependencyProject = project.rootProject.findProject(":$pluginDependencyName")
-            if (dependencyProject == null) {
+            if (!dependencyProject.projectDir.exists() || dependencyProject == null) {
                 return
             }
             // Wait for the Android plugin to load and add the dependency to the plugin project.