create method
Creates a new version of the device. uuid is usually assigned by the platform within this method.
Implementation
@override
Future<void> create({bool verbose = false}) async {
final availableVersions = await AvdmanagerCli.instance.availableRuntimes();
final discoveredVersion = availableVersions.firstWhere(
(v) => v['apiLevel'].toString() == osVersion,
orElse: () {
final versions = availableVersions.map((v) => v['apiLevel']).join(', ');
throw StateError('$osVersion is not available in $versions');
},
);
if (discoveredVersion['googleApis'] != googleApis) {
throw StateError('$osVersion does not have a compatible Google APIs ($googleApis) image');
}
final imageName = ['system-images' 'android-$osVersion'];
if (googleApis) imageName.add('google_apis');
imageName.add('x86');
final deviceName =
name ?? (await AvdmanagerCli.instance.generateName(model: model, osVersion: osVersion));
await runWithError('avdmanager', [
if (verbose) '--verbose',
'create',
'avd',
'--force',
'--name',
deviceName,
'--device',
model,
'--package',
imageName.join(';'),
]);
}