run method
Executes the Android application build process.
This method orchestrates the complete Android build workflow by:
- Argument Processing: Parses command-line arguments and global results
- Configuration Setup: Creates Arguments instance with build settings
- Build Execution: Delegates to Arguments.build() for actual compilation
- Result Handling: Returns build exit code for success/failure indication
Parameters
- Uses
argResults- Command-specific argument results from CLI parsing - Uses
globalResults- Global configuration and environment variables
Returns
Returns a Future that completes with:
0- Build completed successfully>0- Build failed with specific error codenull- Build process encountered unexpected termination
Build Process
The execution flow includes:
- Environment validation (Android SDK, build tools)
- Dependency resolution and Gradle setup
- Source compilation and resource processing
- APK/AAB generation with specified configuration
- Signing process using provided credentials
- Output file generation and validation
Error Handling
Common failure scenarios include:
- Missing or invalid Android SDK installation
- Incorrect signing configuration or missing keystore
- Build dependency conflicts or resolution failures
- Insufficient disk space or memory for build process
- Invalid build arguments or configuration parameters
Example
// Command execution through CLI
final result = await command.run();
// Handle build results
switch (result) {
case 0:
logger.logInfo('Android build completed successfully');
break;
case 1:
logger.logError('Build failed due to configuration errors');
break;
default:
logger.logError('Build failed with exit code: $result');
}
Implementation
@override
Future? run() => Arguments.fromArgResults(argResults!, globalResults).build();