mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
added friendlier error for invalid AndroidManifest.xml (#29604)
This commit is contained in:
parent
8707f1f335
commit
dffbfebbf1
@ -10,6 +10,7 @@ import 'package:xml/xml.dart' as xml;
|
|||||||
|
|
||||||
import 'android/android_sdk.dart';
|
import 'android/android_sdk.dart';
|
||||||
import 'android/gradle.dart';
|
import 'android/gradle.dart';
|
||||||
|
import 'base/common.dart';
|
||||||
import 'base/context.dart';
|
import 'base/context.dart';
|
||||||
import 'base/file_system.dart';
|
import 'base/file_system.dart';
|
||||||
import 'base/os.dart' show os;
|
import 'base/os.dart' show os;
|
||||||
@ -161,7 +162,20 @@ class AndroidApk extends ApplicationPackage {
|
|||||||
return null;
|
return null;
|
||||||
|
|
||||||
final String manifestString = manifest.readAsStringSync();
|
final String manifestString = manifest.readAsStringSync();
|
||||||
final xml.XmlDocument document = xml.parse(manifestString);
|
xml.XmlDocument document;
|
||||||
|
try {
|
||||||
|
document = xml.parse(manifestString);
|
||||||
|
} on xml.XmlParserException catch (exception) {
|
||||||
|
String manifestLocation;
|
||||||
|
if (androidProject.isUsingGradle) {
|
||||||
|
manifestLocation = fs.path.join(androidProject.hostAppGradleRoot.path, 'app', 'src', 'main', 'AndroidManifest.xml');
|
||||||
|
} else {
|
||||||
|
manifestLocation = fs.path.join(androidProject.hostAppGradleRoot.path, 'AndroidManifest.xml');
|
||||||
|
}
|
||||||
|
printError('AndroidManifest.xml is not a valid XML document.');
|
||||||
|
printError('Please check $manifestLocation for errors.');
|
||||||
|
throwToolExit('XML Parser error message: ${exception.toString()}');
|
||||||
|
}
|
||||||
|
|
||||||
final Iterable<xml.XmlElement> manifests = document.findElements('manifest');
|
final Iterable<xml.XmlElement> manifests = document.findElements('manifest');
|
||||||
if (manifests.isEmpty)
|
if (manifests.isEmpty)
|
||||||
|
Loading…
Reference in New Issue
Block a user