diff --git a/packages/android_alarm_manager/CHANGELOG.md b/packages/android_alarm_manager/CHANGELOG.md
index cf70ea7..1506fd3 100644
--- a/packages/android_alarm_manager/CHANGELOG.md
+++ b/packages/android_alarm_manager/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.4+2
+
+* Remove AndroidX warning.
+
 ## 0.4.4+1
 
 * Update and migrate iOS example project.
diff --git a/packages/android_alarm_manager/android/build.gradle b/packages/android_alarm_manager/android/build.gradle
index 11c6be2..d711772 100644
--- a/packages/android_alarm_manager/android/build.gradle
+++ b/packages/android_alarm_manager/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "android_alarm_manager";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.androidalarmmanager'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/android_alarm_manager/pubspec.yaml b/packages/android_alarm_manager/pubspec.yaml
index acdaad5..6fe4ed9 100644
--- a/packages/android_alarm_manager/pubspec.yaml
+++ b/packages/android_alarm_manager/pubspec.yaml
@@ -1,7 +1,7 @@
 name: android_alarm_manager
 description: Flutter plugin for accessing the Android AlarmManager service, and
   running Dart code in the background when alarms fire.
-version: 0.4.4+1
+version: 0.4.4+2
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/android_alarm_manager
 
diff --git a/packages/android_intent/CHANGELOG.md b/packages/android_intent/CHANGELOG.md
index b1e0610..a71b5e9 100644
--- a/packages/android_intent/CHANGELOG.md
+++ b/packages/android_intent/CHANGELOG.md
@@ -1,3 +1,7 @@
+##  0.3.4+5
+
+* Remove AndroidX warning.
+
 ## 0.3.4+4
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/android_intent/android/build.gradle b/packages/android_intent/android/build.gradle
index ad0f50e..008b49f 100644
--- a/packages/android_intent/android/build.gradle
+++ b/packages/android_intent/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "android_intent";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.androidintent'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/android_intent/pubspec.yaml b/packages/android_intent/pubspec.yaml
index 9c8a903..b0248ad 100644
--- a/packages/android_intent/pubspec.yaml
+++ b/packages/android_intent/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Flutter plugin for launching Android Intents. Not supported on iOS.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/android_intent
-version: 0.3.4+4
+version: 0.3.4+5
 
 flutter:
   plugin:
diff --git a/packages/battery/CHANGELOG.md b/packages/battery/CHANGELOG.md
index 4da7e47..c6381ec 100644
--- a/packages/battery/CHANGELOG.md
+++ b/packages/battery/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.1+3
+
+* Remove AndroidX warning.
+
 ## 0.3.1+2
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/battery/android/build.gradle b/packages/battery/android/build.gradle
index bd9baba..ecd2e1c 100644
--- a/packages/battery/android/build.gradle
+++ b/packages/battery/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "battery";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.battery'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/battery/pubspec.yaml b/packages/battery/pubspec.yaml
index 33a17fc..6c51deb 100644
--- a/packages/battery/pubspec.yaml
+++ b/packages/battery/pubspec.yaml
@@ -3,7 +3,7 @@
   (full, charging, discharging) on Android and iOS.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/battery
-version: 0.3.1+2
+version: 0.3.1+3
 
 flutter:
   plugin:
diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md
index 9fbf886..2fc9179 100644
--- a/packages/camera/CHANGELOG.md
+++ b/packages/camera/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.6+3
+
+* Remove AndroidX warning.
+
 ## 0.5.6+2
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/camera/android/build.gradle b/packages/camera/android/build.gradle
index 57ab69e..d5d8680 100644
--- a/packages/camera/android/build.gradle
+++ b/packages/camera/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "camera";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.camera'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/camera/pubspec.yaml b/packages/camera/pubspec.yaml
index 77af608..aae2d6e 100644
--- a/packages/camera/pubspec.yaml
+++ b/packages/camera/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A Flutter plugin for getting information about and controlling the
   camera on Android and iOS. Supports previewing the camera feed, capturing images, capturing video,
   and streaming image buffers to dart.
-version: 0.5.6+2
+version: 0.5.6+3
 
 authors:
   - Flutter Team <flutter-dev@googlegroups.com>
diff --git a/packages/connectivity/CHANGELOG.md b/packages/connectivity/CHANGELOG.md
index 1248200..5a7b5f7 100644
--- a/packages/connectivity/CHANGELOG.md
+++ b/packages/connectivity/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.5+3
+
+* Remove AndroidX warnings.
+
 ## 0.4.5+2
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/connectivity/android/build.gradle b/packages/connectivity/android/build.gradle
index a562f60..26ca50c 100644
--- a/packages/connectivity/android/build.gradle
+++ b/packages/connectivity/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "connectivity";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.connectivity'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/connectivity/pubspec.yaml b/packages/connectivity/pubspec.yaml
index 42c9641..4466c7e 100644
--- a/packages/connectivity/pubspec.yaml
+++ b/packages/connectivity/pubspec.yaml
@@ -3,7 +3,7 @@
   mobile/cellular) connectivity on Android and iOS.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/connectivity
-version: 0.4.5+2
+version: 0.4.5+3
 
 flutter:
   plugin:
diff --git a/packages/device_info/CHANGELOG.md b/packages/device_info/CHANGELOG.md
index 9099e40..e500051 100644
--- a/packages/device_info/CHANGELOG.md
+++ b/packages/device_info/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.1+2
+
+* Remove AndroidX warning.
+
 ## 0.4.1+1
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/device_info/android/build.gradle b/packages/device_info/android/build.gradle
index 68ffcf9..d1dd790 100644
--- a/packages/device_info/android/build.gradle
+++ b/packages/device_info/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "device_info";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.deviceinfo'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/device_info/pubspec.yaml b/packages/device_info/pubspec.yaml
index 94e0c64..7e43f13 100644
--- a/packages/device_info/pubspec.yaml
+++ b/packages/device_info/pubspec.yaml
@@ -3,7 +3,7 @@
   (make, model, etc.), and Android or iOS version the app is running on.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/device_info
-version: 0.4.1+1
+version: 0.4.1+2
 
 flutter:
   plugin:
diff --git a/packages/google_maps_flutter/CHANGELOG.md b/packages/google_maps_flutter/CHANGELOG.md
index d9a9bb8..e775241 100644
--- a/packages/google_maps_flutter/CHANGELOG.md
+++ b/packages/google_maps_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.21+9
+
+* Remove AndroidX warnings.
+
 ## 0.5.21+8
 
 * Add NS_ASSUME_NONNULL_* macro to reduce iOS compiler warnings.
diff --git a/packages/google_maps_flutter/android/build.gradle b/packages/google_maps_flutter/android/build.gradle
index e7bc80c..f13de0b 100644
--- a/packages/google_maps_flutter/android/build.gradle
+++ b/packages/google_maps_flutter/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "google_maps_flutter";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.googlemaps'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/google_maps_flutter/pubspec.yaml b/packages/google_maps_flutter/pubspec.yaml
index 27e067a..3e8b802 100644
--- a/packages/google_maps_flutter/pubspec.yaml
+++ b/packages/google_maps_flutter/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A Flutter plugin for integrating Google Maps in iOS and Android applications.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter
-version: 0.5.21+8
+version: 0.5.21+9
 
 dependencies:
   flutter:
diff --git a/packages/google_sign_in/CHANGELOG.md b/packages/google_sign_in/CHANGELOG.md
index fde4f78..a8f0d6a 100644
--- a/packages/google_sign_in/CHANGELOG.md
+++ b/packages/google_sign_in/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 4.0.10
+
+* Remove AndroidX warning.
+
 ## 4.0.9
 
 * Update and migrate iOS example project.
diff --git a/packages/google_sign_in/android/build.gradle b/packages/google_sign_in/android/build.gradle
index cb7227a..1447395 100755
--- a/packages/google_sign_in/android/build.gradle
+++ b/packages/google_sign_in/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "google_sign_in";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.googlesignin'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/google_sign_in/pubspec.yaml b/packages/google_sign_in/pubspec.yaml
index c5adc53..73a607b 100644
--- a/packages/google_sign_in/pubspec.yaml
+++ b/packages/google_sign_in/pubspec.yaml
@@ -3,7 +3,7 @@
   for signing in with a Google account on Android and iOS.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/google_sign_in
-version: 4.0.9
+version: 4.0.10
 
 flutter:
   plugin:
diff --git a/packages/image_picker/CHANGELOG.md b/packages/image_picker/CHANGELOG.md
index bdaa963..01d5490 100644
--- a/packages/image_picker/CHANGELOG.md
+++ b/packages/image_picker/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.1+9
+
+* Remove AndroidX warning.
+
 ## 0.6.1+8
 
 * Fix iOS build and analyzer warnings.
diff --git a/packages/image_picker/android/build.gradle b/packages/image_picker/android/build.gradle
index d192a89..19f14a2 100755
--- a/packages/image_picker/android/build.gradle
+++ b/packages/image_picker/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "image_picker";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.imagepicker'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/image_picker/pubspec.yaml b/packages/image_picker/pubspec.yaml
index 6ad8153..f3ed31d 100755
--- a/packages/image_picker/pubspec.yaml
+++ b/packages/image_picker/pubspec.yaml
@@ -5,7 +5,7 @@
   - Flutter Team <flutter-dev@googlegroups.com>
   - Rhodes Davis Jr. <rody.davis.jr@gmail.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/image_picker
-version: 0.6.1+8
+version: 0.6.1+9
 
 flutter:
   plugin:
diff --git a/packages/in_app_purchase/android/build.gradle b/packages/in_app_purchase/android/build.gradle
index 65fe0b1..54bd5e1 100644
--- a/packages/in_app_purchase/android/build.gradle
+++ b/packages/in_app_purchase/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "in_app_purchase";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.inapppurchase'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/local_auth/CHANGELOG.md b/packages/local_auth/CHANGELOG.md
index e593c49..b69e060 100644
--- a/packages/local_auth/CHANGELOG.md
+++ b/packages/local_auth/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.0+3
+
+* Remove AndroidX warnings.
+
 ## 0.6.0+2
 
 * Update and migrate iOS example project.
diff --git a/packages/local_auth/android/build.gradle b/packages/local_auth/android/build.gradle
index 74fe6c5..92b9c17 100644
--- a/packages/local_auth/android/build.gradle
+++ b/packages/local_auth/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "local_auth";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.localauth'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/local_auth/pubspec.yaml b/packages/local_auth/pubspec.yaml
index 1ff111f..38ed72d 100644
--- a/packages/local_auth/pubspec.yaml
+++ b/packages/local_auth/pubspec.yaml
@@ -3,7 +3,7 @@
   such as Fingerprint Reader and Touch ID.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/local_auth
-version: 0.6.0+2
+version: 0.6.0+3
 
 flutter:
   plugin:
diff --git a/packages/package_info/CHANGELOG.md b/packages/package_info/CHANGELOG.md
index 9cb961d..90bf0b9 100644
--- a/packages/package_info/CHANGELOG.md
+++ b/packages/package_info/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.0+11
+
+* Remove AndroidX warnings.
+
 ## 0.4.0+10
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/package_info/android/build.gradle b/packages/package_info/android/build.gradle
index 62c76b6..6dbdb66 100644
--- a/packages/package_info/android/build.gradle
+++ b/packages/package_info/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "package_info";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.packageinfo'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/package_info/pubspec.yaml b/packages/package_info/pubspec.yaml
index 76942a4..50712ba 100644
--- a/packages/package_info/pubspec.yaml
+++ b/packages/package_info/pubspec.yaml
@@ -3,7 +3,7 @@
   package, such as CFBundleVersion on iOS or versionCode on Android.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/package_info
-version: 0.4.0+10
+version: 0.4.0+11
 
 flutter:
   plugin:
diff --git a/packages/path_provider/CHANGELOG.md b/packages/path_provider/CHANGELOG.md
index af0ec9f..4c4dca4 100644
--- a/packages/path_provider/CHANGELOG.md
+++ b/packages/path_provider/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.4.1
+
+* Remove AndroidX warnings.
+
 ## 1.4.0
 
 * Support retrieving storage paths on Android devices with multiple external
diff --git a/packages/path_provider/android/build.gradle b/packages/path_provider/android/build.gradle
index dbbe3b8..93460e7 100644
--- a/packages/path_provider/android/build.gradle
+++ b/packages/path_provider/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "path_provider";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.pathprovider'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/path_provider/pubspec.yaml b/packages/path_provider/pubspec.yaml
index 4517eba..ae4bae6 100644
--- a/packages/path_provider/pubspec.yaml
+++ b/packages/path_provider/pubspec.yaml
@@ -3,7 +3,7 @@
   iOS file systems, such as the temp and app data directories.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/path_provider
-version: 1.4.0
+version: 1.4.1
 
 flutter:
   plugin:
diff --git a/packages/quick_actions/CHANGELOG.md b/packages/quick_actions/CHANGELOG.md
index 3b7937e..0069c0c 100644
--- a/packages/quick_actions/CHANGELOG.md
+++ b/packages/quick_actions/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.2+4
+
+* Remove AndroidX warnings.
+
 ## 0.3.2+3
 
 * Define clang module for iOS.
diff --git a/packages/quick_actions/android/build.gradle b/packages/quick_actions/android/build.gradle
index 09576ac..648b654 100644
--- a/packages/quick_actions/android/build.gradle
+++ b/packages/quick_actions/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "quick_actions";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.quickactions'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/quick_actions/pubspec.yaml b/packages/quick_actions/pubspec.yaml
index 41cb1d1..da725aa 100644
--- a/packages/quick_actions/pubspec.yaml
+++ b/packages/quick_actions/pubspec.yaml
@@ -3,7 +3,7 @@
   Quick Actions on iOS and App Shortcuts on Android.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/quick_actions
-version: 0.3.2+3
+version: 0.3.2+4
 
 flutter:
   plugin:
diff --git a/packages/sensors/CHANGELOG.md b/packages/sensors/CHANGELOG.md
index f24bb8e..ea48858 100644
--- a/packages/sensors/CHANGELOG.md
+++ b/packages/sensors/CHANGELOG.md
@@ -1,7 +1,12 @@
+## 0.4.1+2
+
+* Remove AndroidX warnings.
+
 ## 0.4.1+1
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
   potential version conflicts with other transitive libraries.
+
 ## 0.4.1
 
 * Support the v2 Android embedder.
diff --git a/packages/sensors/android/build.gradle b/packages/sensors/android/build.gradle
index 2f768bc..69edcb9 100644
--- a/packages/sensors/android/build.gradle
+++ b/packages/sensors/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "sensors";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.sensors'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/sensors/pubspec.yaml b/packages/sensors/pubspec.yaml
index 050d9fc..38e6982 100644
--- a/packages/sensors/pubspec.yaml
+++ b/packages/sensors/pubspec.yaml
@@ -3,7 +3,7 @@
   gyroscope sensors.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/sensors
-version: 0.4.1+1
+version: 0.4.1+2
 
 flutter:
   plugin:
diff --git a/packages/share/CHANGELOG.md b/packages/share/CHANGELOG.md
index b2b5dcd..877cafe 100644
--- a/packages/share/CHANGELOG.md
+++ b/packages/share/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.3+2
+
+* Remove AndroidX warnings.
+
 ## 0.6.3+1
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/share/android/build.gradle b/packages/share/android/build.gradle
index 0c28162..4783abe 100644
--- a/packages/share/android/build.gradle
+++ b/packages/share/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "share";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.share'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/share/pubspec.yaml b/packages/share/pubspec.yaml
index 802a9bd..de376e8 100644
--- a/packages/share/pubspec.yaml
+++ b/packages/share/pubspec.yaml
@@ -3,7 +3,7 @@
   the ACTION_SEND intent on Android and UIActivityViewController on iOS.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/share
-version: 0.6.3+1
+version: 0.6.3+2
 
 flutter:
   plugin:
diff --git a/packages/shared_preferences/CHANGELOG.md b/packages/shared_preferences/CHANGELOG.md
index 490c03b..0155d5d 100644
--- a/packages/shared_preferences/CHANGELOG.md
+++ b/packages/shared_preferences/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.4+2
+
+* Remove AndroidX warnings.
+
 ## 0.5.4+1
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/shared_preferences/android/build.gradle b/packages/shared_preferences/android/build.gradle
index 329b916..27d3964 100644
--- a/packages/shared_preferences/android/build.gradle
+++ b/packages/shared_preferences/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "shared_preferences";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.sharedpreferences'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/shared_preferences/pubspec.yaml b/packages/shared_preferences/pubspec.yaml
index 5ab8151..3e69e59 100644
--- a/packages/shared_preferences/pubspec.yaml
+++ b/packages/shared_preferences/pubspec.yaml
@@ -3,7 +3,7 @@
   Wraps NSUserDefaults on iOS and SharedPreferences on Android.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/shared_preferences
-version: 0.5.4+1
+version: 0.5.4+2
 
 flutter:
   plugin:
diff --git a/packages/url_launcher/url_launcher/CHANGELOG.md b/packages/url_launcher/url_launcher/CHANGELOG.md
index 1ae93df..300d6d9 100644
--- a/packages/url_launcher/url_launcher/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 5.2.6
+
+*  Remove AndroidX warnings.
+
 ## 5.2.5
 
 * Include lifecycle dependency as a compileOnly one on Android to resolve
diff --git a/packages/url_launcher/url_launcher/android/build.gradle b/packages/url_launcher/url_launcher/android/build.gradle
index 46d0bf4..25dcef4 100644
--- a/packages/url_launcher/url_launcher/android/build.gradle
+++ b/packages/url_launcher/url_launcher/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "url_launcher";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.urllauncher'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/url_launcher/url_launcher/pubspec.yaml b/packages/url_launcher/url_launcher/pubspec.yaml
index 78d6a74..2477e11 100644
--- a/packages/url_launcher/url_launcher/pubspec.yaml
+++ b/packages/url_launcher/url_launcher/pubspec.yaml
@@ -3,7 +3,7 @@
   web, phone, SMS, and email schemes.
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher
-version: 5.2.5
+version: 5.2.6
 
 flutter:
   plugin:
diff --git a/packages/video_player/CHANGELOG.md b/packages/video_player/CHANGELOG.md
index 571acc4..d488249 100644
--- a/packages/video_player/CHANGELOG.md
+++ b/packages/video_player/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.10.2+6
+
+* Remove AndroidX warnings.
+
 ## 0.10.2+5
 
 * Update unit test for compatibility with Flutter stable branch.
diff --git a/packages/video_player/android/build.gradle b/packages/video_player/android/build.gradle
index ec60461..edbb4c7 100644
--- a/packages/video_player/android/build.gradle
+++ b/packages/video_player/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "video_player";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.videoplayer'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/video_player/pubspec.yaml b/packages/video_player/pubspec.yaml
index f86383d..1b0805b 100644
--- a/packages/video_player/pubspec.yaml
+++ b/packages/video_player/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Flutter plugin for displaying inline video with other Flutter
   widgets on Android and iOS.
 author: Flutter Team <flutter-dev@googlegroups.com>
-version: 0.10.2+5
+version: 0.10.2+6
 homepage: https://github.com/flutter/plugins/tree/master/packages/video_player
 
 flutter:
diff --git a/packages/webview_flutter/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md
index 313b29c..f240d0c 100644
--- a/packages/webview_flutter/CHANGELOG.md
+++ b/packages/webview_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.15+2
+
+* Remove AndroidX warnings.
+
 ## 0.3.15+1
 
 * Revert the prior embedding support add since it requires an API that hasn't
diff --git a/packages/webview_flutter/android/build.gradle b/packages/webview_flutter/android/build.gradle
index 4fe7629..893badc 100644
--- a/packages/webview_flutter/android/build.gradle
+++ b/packages/webview_flutter/android/build.gradle
@@ -1,16 +1,3 @@
-def PLUGIN = "webview_flutter";
-def ANDROIDX_WARNING = "flutterPluginsAndroidXWarning";
-gradle.buildFinished { buildResult ->
-    if (buildResult.failure && !rootProject.ext.has(ANDROIDX_WARNING)) {
-        println '         *********************************************************'
-        println 'WARNING: This version of ' + PLUGIN + ' will break your Android build if it or its dependencies aren\'t compatible with AndroidX.'
-        println '         See https://goo.gl/CP92wY for more information on the problem and how to fix it.'
-        println '         This warning prints for all Android build failures. The real root cause of the error may be unrelated.'
-        println '         *********************************************************'
-        rootProject.ext.set(ANDROIDX_WARNING, true);
-    }
-}
-
 group 'io.flutter.plugins.webviewflutter'
 version '1.0-SNAPSHOT'
 
diff --git a/packages/webview_flutter/pubspec.yaml b/packages/webview_flutter/pubspec.yaml
index cd8bfb5..5be58f0 100644
--- a/packages/webview_flutter/pubspec.yaml
+++ b/packages/webview_flutter/pubspec.yaml
@@ -1,6 +1,6 @@
 name: webview_flutter
 description: A Flutter plugin that provides a WebView widget on Android and iOS.
-version: 0.3.15+1
+version: 0.3.15+2
 author: Flutter Team <flutter-dev@googlegroups.com>
 homepage: https://github.com/flutter/plugins/tree/master/packages/webview_flutter
 
