Bad state: No element Exception이 발생하면서 정상 작동되지 않았다.
E/flutter ( 5782): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: Bad state: No element
E/flutter ( 5782): #0 ListMixin.firstWhere (dart:collection/list.dart:167:5)
E/flutter ( 5782): #1 NewVersion._getAndroidStoreVersion (package:new_version/new_version.dart:152:51)
확인 결과,
Future<VersionStatus?> _getAndroidStoreVersion(
PackageInfo packageInfo) async {
final id = androidId ?? packageInfo.packageName;
final uri =
Uri.https("play.google.com", "/store/apps/details", {"id": "$id"});
final response = await http.get(uri);
if (response.statusCode != 200) {
debugPrint('Can\'t find an app in the Play Store with the id: $id');
returnnull;
}
final document = parse(response.body);
final additionalInfoElements = document.getElementsByClassName('hAyfc');
final versionElement = additionalInfoElements.firstWhere(
(elm) => elm.querySelector('.BgcNfc')!.text == 'Current Version',
);
final storeVersion = versionElement.querySelector('.htlgb')!.text;
final sectionElements = document.getElementsByClassName('W4P4ne');
final releaseNotesElement = sectionElements.firstWhereOrNull(
(elm) => elm.querySelector('.wSaTQd')!.text == 'What\'s New',
);
final releaseNotes = releaseNotesElement
?.querySelector('.PHBdkd')
?.querySelector('.DWPxHb')
?.text;
return VersionStatus._(
localVersion: packageInfo.version,
storeVersion: storeVersion,
appStoreLink: uri.toString(),
releaseNotes: releaseNotes,
);
}
위의 소스에서 보이듯이 new_version에서 Android는 https://play.google.com/store/apps/details 페이지로 접속해서