add printError messages and tool exit to android device (#31400)
diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart
index 6a1c88c..83a651a 100644
--- a/packages/flutter_tools/lib/src/android/android_device.dart
+++ b/packages/flutter_tools/lib/src/android/android_device.dart
@@ -383,6 +383,10 @@
// activity name from the .apk.
package = await AndroidApk.fromAndroidProject(project.android);
}
+ // There was a failure parsing the android project information.
+ if (package == null) {
+ throwToolExit('Problem building Android application: see above error(s).');
+ }
printTrace("Stopping app '${package.name}' on $name.");
await stopApp(package);
diff --git a/packages/flutter_tools/lib/src/application_package.dart b/packages/flutter_tools/lib/src/application_package.dart
index fa9dfe6..bd9fa52 100644
--- a/packages/flutter_tools/lib/src/application_package.dart
+++ b/packages/flutter_tools/lib/src/application_package.dart
@@ -166,8 +166,11 @@
final File manifest = androidProject.appManifestFile;
- if (!manifest.existsSync())
+ if (!manifest.existsSync()) {
+ printError('AndroidManifest.xml could not be found.');
+ printError('Please check ${manifest.path} for errors.');
return null;
+ }
final String manifestString = manifest.readAsStringSync();
xml.XmlDocument document;
@@ -186,8 +189,11 @@
}
final Iterable<xml.XmlElement> manifests = document.findElements('manifest');
- if (manifests.isEmpty)
+ if (manifests.isEmpty) {
+ printError('AndroidManifest.xml has no manifest element.');
+ printError('Please check ${manifest.path} for errors.');
return null;
+ }
final String packageId = manifests.first.getAttribute('package');
String launchActivity;
@@ -220,8 +226,11 @@
}
}
- if (packageId == null || launchActivity == null)
+ if (packageId == null || launchActivity == null) {
+ printError('package identifier or launch activity not found.');
+ printError('Please check ${manifest.path} for errors.');
return null;
+ }
return AndroidApk(
id: packageId,