diff --git a/packages/share/CHANGELOG.md b/packages/share/CHANGELOG.md
index ba44db4..20afdea 100644
--- a/packages/share/CHANGELOG.md
+++ b/packages/share/CHANGELOG.md
@@ -1,18 +1,9 @@
-## 2.0.0-nullsafety.3
-
-* Update README with the new documentation urls.
-
-## 2.0.0-nullsafety.2
-
-* Update the example app: remove the deprecated `RaisedButton` and `FlatButton` widgets.
-
-## 2.0.0-nullsafety.1
-
-* Fix outdated links across a number of markdown files ([#3276](https://github.com/flutter/plugins/pull/3276))
-
-## 2.0.0-nullsafety
+## 2.0.0
 
 * Migrate to null safety.
+* Update the example app: remove the deprecated `RaisedButton` and `FlatButton` widgets.
+* Fix outdated links across a number of markdown files ([#3276](https://github.com/flutter/plugins/pull/3276))
+* Update README with the new documentation urls.
 
 ## 0.6.5+5
 
diff --git a/packages/share/example/lib/image_previews.dart b/packages/share/example/lib/image_previews.dart
index 61ecec4..9070749 100644
--- a/packages/share/example/lib/image_previews.dart
+++ b/packages/share/example/lib/image_previews.dart
@@ -9,11 +9,11 @@
   final List<String> imagePaths;
 
   /// Callback when an image should be removed
-  final Function(int) onDelete;
+  final Function(int)? onDelete;
 
   /// Creates a widget for preview of images. [imagePaths] can not be empty
   /// and all contained paths need to be non empty.
-  const ImagePreviews(this.imagePaths, {Key key, this.onDelete})
+  const ImagePreviews(this.imagePaths, {Key? key, this.onDelete})
       : super(key: key);
 
   @override
@@ -26,7 +26,7 @@
     for (int i = 0; i < imagePaths.length; i++) {
       imageWidgets.add(_ImagePreview(
         imagePaths[i],
-        onDelete: onDelete != null ? () => onDelete(i) : null,
+        onDelete: onDelete != null ? () => onDelete!(i) : null,
       ));
     }
 
@@ -39,9 +39,9 @@
 
 class _ImagePreview extends StatelessWidget {
   final String imagePath;
-  final VoidCallback onDelete;
+  final VoidCallback? onDelete;
 
-  const _ImagePreview(this.imagePath, {Key key, this.onDelete})
+  const _ImagePreview(this.imagePath, {Key? key, this.onDelete})
       : super(key: key);
 
   @override
diff --git a/packages/share/example/lib/main.dart b/packages/share/example/lib/main.dart
index a9ebd6b..8d6a783 100644
--- a/packages/share/example/lib/main.dart
+++ b/packages/share/example/lib/main.dart
@@ -116,7 +116,7 @@
     // RenderObject in its descendent tree when it's not
     // a RenderObjectWidget. The ElevatedButton's RenderObject
     // has its position and size after it's built.
-    final RenderBox box = context.findRenderObject();
+    final RenderBox box = context.findRenderObject() as RenderBox;
 
     if (imagePaths.isNotEmpty) {
       await Share.shareFiles(imagePaths,
diff --git a/packages/share/example/pubspec.yaml b/packages/share/example/pubspec.yaml
index 372633e..2df76ef 100644
--- a/packages/share/example/pubspec.yaml
+++ b/packages/share/example/pubspec.yaml
@@ -11,18 +11,18 @@
     # The example app is bundled with the plugin so we use a path dependency on
     # the parent directory to use the current plugin's version.
     path: ../
-  image_picker: ^0.6.7+4
+  image_picker: ^0.7.0
 
 dev_dependencies:
   flutter_driver:
     sdk: flutter
   integration_test:
     path: ../../integration_test
-  pedantic: ^1.8.0
+  pedantic: ^1.10.0
 
 flutter:
   uses-material-design: true
 
 environment:
-  sdk: ">=2.0.0-dev.28.0 <3.0.0"
+  sdk: ">=2.12.0-259.9.beta <3.0.0"
   flutter: ">=1.9.1+hotfix.2"
diff --git a/packages/share/example/test_driver/test/integration_test.dart b/packages/share/example/test_driver/test/integration_test.dart
index 7a2c213..a8a56aa 100644
--- a/packages/share/example/test_driver/test/integration_test.dart
+++ b/packages/share/example/test_driver/test/integration_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:convert';
 import 'dart:io';
diff --git a/packages/share/pubspec.yaml b/packages/share/pubspec.yaml
index 4d2b231..e8a1167 100644
--- a/packages/share/pubspec.yaml
+++ b/packages/share/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Flutter plugin for sharing content via the platform share UI, using
   the ACTION_SEND intent on Android and UIActivityViewController on iOS.
 homepage: https://github.com/flutter/plugins/tree/master/packages/share
-version: 2.0.0-nullsafety.3
+version: 2.0.0
 
 flutter:
   plugin:
@@ -14,20 +14,20 @@
         pluginClass: FLTSharePlugin
 
 dependencies:
-  meta: ^1.3.0-nullsafety.6
-  mime: ^1.0.0-nullsafety.0
+  meta: ^1.3.0
+  mime: ^1.0.0
   flutter:
     sdk: flutter
 
 dev_dependencies:
-  test: ^1.16.0-nullsafety.13
-  mockito: ^4.1.3
+  test: ^1.16.3
+  mockito: ^5.0.0-nullsafety.7
   flutter_test:
     sdk: flutter
   integration_test:
     path: ../integration_test
-  pedantic: ^1.10.0-nullsafety.3
+  pedantic: ^1.10.0
 
 environment:
   flutter: ">=1.12.13+hotfix.5"
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.12.0-259.9.beta <3.0.0"
