Fix crash on invalid prefix imports. (#1899)

diff --git a/lib/src/model.dart b/lib/src/model.dart
index 78190b7..9868133 100644
--- a/lib/src/model.dart
+++ b/lib/src/model.dart
@@ -2236,7 +2236,8 @@
       _prefixToLibrary = {};
       // It is possible to have overlapping prefixes.
       for (ImportElement i in (element as LibraryElement).imports) {
-        if (i.prefix?.name != null) {
+        // Ignore invalid imports.
+        if (i.prefix?.name != null && i.importedLibrary != null) {
           _prefixToLibrary.putIfAbsent(i.prefix?.name, () => new Set());
           _prefixToLibrary[i.prefix?.name].add(
               new ModelElement.from(i.importedLibrary, library, packageGraph));
diff --git a/testing/test_package/lib/fake.dart b/testing/test_package/lib/fake.dart
index 9e001ab..03b0a69 100644
--- a/testing/test_package/lib/fake.dart
+++ b/testing/test_package/lib/fake.dart
@@ -48,6 +48,9 @@
 
 import 'dart:async';
 import 'dart:collection';
+// Make sure dartdoc ignores invalid prefixes imports (#1896)
+// ignore: uri_does_not_exist
+import 'dart:json' as invalidPrefix;
 import 'package:meta/meta.dart' show Required;
 import 'csspub.dart' as css;
 import 'csspub.dart' as renamedLib2;