anchor.diff:        }
       }
   
  -    final _Attribute package = manifest.firstAttribute('package');
  +    final _Attribute? package = manifest.firstAttribute('package');
       // "io.flutter.examples.hello_world" (Raw: "io.flutter.examples.hello_world")
  -    final String packageName = package.value.substring(1, package.value.indexOf('" '));
  +    final String? packageName = package?.value?.substring(1, package.value?.indexOf('" '));
   
       if (launchActivity == null) {
         logger.printError('Error running $packageName. Default activity not found');
         return null;
       }
   
  -    final _Attribute nameAttribute = launchActivity.firstAttribute('android:name');
  +    final _Attribute? nameAttribute = launchActivity.firstAttribute('android:name');
       // "io.flutter.examples.hello_world.MainActivity" (Raw: "io.flutter.examples.hello_world.MainActivity")
  -    final String activityName = nameAttribute
  -        .value.substring(1, nameAttribute.value.indexOf('" '));
  +    final String? activityName = nameAttribute?.value?.substring(1, nameAttribute.value?.indexOf('" '));
   
       // Example format: (type 0x10)0x1
  -    final _Attribute versionCodeAttr = manifest.firstAttribute('android:versionCode');
  +    final _Attribute? versionCodeAttr = manifest.firstAttribute('android:versionCode');
       if (versionCodeAttr == null) {
         logger.printError('Error running $packageName. Manifest versionCode not found');
         return null;
       }
  -    if (!versionCodeAttr.value.startsWith('(type 0x10)')) {
  +    if (versionCodeAttr.value?.startsWith('(type 0x10)') != true) {
         logger.printError('Error running $packageName. Manifest versionCode invalid');
         return null;
       }
  -    final int versionCode = int.tryParse(versionCodeAttr.value.substring(11));
  +    final int? versionCode = versionCodeAttr.value == null ? null : int.tryParse(versionCodeAttr.value!.substring(11));
       if (versionCode == null) {
         logger.printError('Error running $packageName. Manifest versionCode invalid');
         return null;
  
positive.code: abstract class _Entry {
    const _Entry(this.parent, this.level);
  
    final _Element parent;
    final int level;
  }
  
  class _Element extends _Entry {
    _Element._(this.name, _Element parent, int level) : super(parent, level);
  
    factory _Element.fromLine(String line, _Element parent) {
      //      E: application (line=29)
      final List<String> parts = line.trimLeft().split(' ');
      return _Element._(parts[1], parent, line.length - line.trimLeft().length);
    }
  
    final List<_Entry> children = <_Entry>[];
    final String name;
  
    void addChild(_Entry child) {
      children.add(child);
    }
  
    _Attribute firstAttribute(String name) {
      return children.whereType<_Attribute>().firstWhere(
          (_Attribute e) => e.key.startsWith(name),
          orElse: () => null,
      );
    }
  
    _Element firstElement(String name) {
      return children.whereType<_Element>().firstWhere(
          (_Element e) => e.name.startsWith(name),
          orElse: () => null,
      );
    }
  
    Iterable<_Element> allElements(String name) {
      return children.whereType<_Element>().where((_Element e) => e.name.startsWith(name));
    }
  }
  
  class _Attribute extends _Entry {
    const _Attribute._(this.key, this.value, _Element parent, int level) : super(parent, level);
  
    factory _Attribute.fromLine(String line, _Element parent) {
      //     A: android:label(0x01010001)="hello_world" (Raw: "hello_world")
  
negative.code:   Map<String, Map<String, String>> get data =>
        UnmodifiableMapView<String, Map<String, String>>(_data);
  
    String? get packageName => _data['package'] == null ? null : _data['package']?['name'];
  
    String? get versionCode => _data['version-code'] == null ? null : _data['version-code']?['name'];
  
    String? get launchableActivityName {
      return _data['launchable-activity'] == null ? null : _data['launchable-activity']?['name'];
    }
  
    @override
  