protected String extractPackageNameFromApk ( File apkFile ) throws MojoExecutionException { CommandExecutor executor = CommandExecutor . Factory . createDefaultCommmandExecutor ( ) ; executor . setLogger ( this . getLog ( ) ) ; executor . setCaptureStdOut ( true ) ; executor . setCaptureStdErr ( true ) ; AaptCommandBuilder commandBuilder = AaptCommandBuilder . dump ( getLog ( ) ) . xmlTree ( ) . setPathToApk ( apkFile . getAbsolutePath ( ) ) . addAssetFile ( "AndroidManifest.xml" ) ; getLog ( ) . info ( getAndroidSdk ( ) . getAaptPath ( ) + " " + commandBuilder . toString ( ) ) ; try { executor . executeCommand ( getAndroidSdk ( ) . getAaptPath ( ) , commandBuilder . build ( ) , false ) ; final String xmlTree = executor . getStandardOut ( ) ; return extractPackageNameFromAndroidManifestXmlTree ( xmlTree ) ; } catch ( ExecutionException e ) { throw new MojoExecutionException ( "Error while trying to figure out package name from inside apk file " + apkFile ) ; } finally { String errout = executor . getStandardError ( ) ; if ( ( errout != null ) && ( errout . trim ( ) . length ( ) > 0 ) ) { getLog ( ) . error ( errout ) ; } } }
Extracts the package name from an apk file .