src/main/java/com/simpligility/maven/plugins/android/phase09package/ApklibMojo.java
private void generateIntermediateApk() throws MojoExecutionException
    {

        CommandExecutor executor = CommandExecutor.Factory.createDefaultCommmandExecutor();
        executor.setLogger( this.getLog() );
        File[] overlayDirectories = getResourceOverlayDirectories();

        File androidJar = getAndroidSdk().getAndroidJar();
        File outputFile = new File( targetDirectory, finalName + ".ap_" );

        List<File> dependencyArtifactResDirectoryList = new ArrayList<File>();
        for ( Artifact libraryArtifact : getTransitiveDependencyArtifacts( APKLIB, AAR ) )
        {
            final File apklibResDirectory = getUnpackedLibResourceFolder( libraryArtifact );
            if ( apklibResDirectory.exists() )
            {
                dependencyArtifactResDirectoryList.add( apklibResDirectory );
            }
        }

        AaptCommandBuilder commandBuilder = AaptCommandBuilder
                .packageResources( getLog() )
                .forceOverwriteExistingFiles()
                .setPathToAndroidManifest( destinationManifestFile )
                .addResourceDirectoriesIfExists( overlayDirectories )
                .addResourceDirectoryIfExists( resourceDirectory )
                .addResourceDirectoriesIfExists( dependencyArtifactResDirectoryList )
                .autoAddOverlay()
                // NB aapt only accepts a single assets parameter - combinedAssets is a merge of all assets
                .addRawAssetsDirectoryIfExists( combinedAssets )
                .addExistingPackageToBaseIncludeSet( androidJar )
                .setOutputApkFile( outputFile )
                .addConfigurations( configurations )
                .setVerbose( aaptVerbose );

        getLog().debug( getAndroidSdk().getAaptPath() + " " + commandBuilder.toString() );
        getLog().info( "Generating apklib" );
        try
        {
            executor.setCaptureStdOut( true );
            List<String> commands = commandBuilder.build();
            executor.executeCommand( getAndroidSdk().getAaptPath(), commands, project.getBasedir(), false );
        }
        catch ( ExecutionException e )
        {
            throw new MojoExecutionException( "", e );
        }
    }
private void generateIntermediateApk() throws MojoExecutionException
    {

        CommandExecutor executor = CommandExecutor.Factory.createDefaultCommmandExecutor();
        executor.setLogger( this.getLog() );
        File[] overlayDirectories = getResourceOverlayDirectories();

        File androidJar = getAndroidSdk().getAndroidJar();
        File outputFile = new File( targetDirectory, finalName + ".ap_" );

        List<File> dependencyArtifactResDirectoryList = new ArrayList<File>();
        for ( Artifact libraryArtifact : getTransitiveDependencyArtifacts( APKLIB, AAR ) )
        {
            final File apklibResDirectory = getUnpackedLibResourceFolder( libraryArtifact );
            if ( apklibResDirectory.exists() )
            {
                dependencyArtifactResDirectoryList.add( apklibResDirectory );
            }
        }

        AaptCommandBuilder commandBuilder = AaptCommandBuilder
                .packageResources( getLog() )
                .forceOverwriteExistingFiles()
                .setPathToAndroidManifest( destinationManifestFile )
                .addResourceDirectoriesIfExists( overlayDirectories )
                .addResourceDirectoryIfExists( resourceDirectory )
                .addResourceDirectoriesIfExists( dependencyArtifactResDirectoryList )
                .autoAddOverlay()
                // NB aapt only accepts a single assets parameter - combinedAssets is a merge of all assets
                .addRawAssetsDirectoryIfExists( combinedAssets )
                .addExistingPackageToBaseIncludeSet( androidJar )
                .setOutputApkFile( outputFile )
                .addConfigurations( configurations )
                .setVerbose( aaptVerbose );

        getLog().debug( getAndroidSdk().getAaptPath() + " " + commandBuilder.toString() );
        getLog().info( "Generating apklib" );
        try
        {
            executor.setCaptureStdOut( true );
            List<String> commands = commandBuilder.build();
            executor.executeCommand( getAndroidSdk().getAaptPath(), commands, project.getBasedir(), false );
        }
        catch ( ExecutionException e )
        {
            throw new MojoExecutionException( "", e );
        }
    }
private void generateIntermediateApk ( ) throws MojoExecutionException { CommandExecutor executor = CommandExecutor . Factory . createDefaultCommmandExecutor ( ) ; executor . setLogger ( this . getLog ( ) ) ; File [ ] overlayDirectories = getResourceOverlayDirectories ( ) ; File androidJar = getAndroidSdk ( ) . getAndroidJar ( ) ; File outputFile = new File ( targetDirectory , finalName + ".ap_" ) ; List < File > dependencyArtifactResDirectoryList = new ArrayList < File > ( ) ; for ( Artifact libraryArtifact : getTransitiveDependencyArtifacts ( APKLIB , AAR ) ) { final File apklibResDirectory = getUnpackedLibResourceFolder ( libraryArtifact ) ; if ( apklibResDirectory . exists ( ) ) { dependencyArtifactResDirectoryList . add ( apklibResDirectory ) ; } } AaptCommandBuilder commandBuilder = AaptCommandBuilder . packageResources ( getLog ( ) ) . forceOverwriteExistingFiles ( ) . setPathToAndroidManifest ( destinationManifestFile ) . addResourceDirectoriesIfExists ( overlayDirectories ) . addResourceDirectoryIfExists ( resourceDirectory ) . addResourceDirectoriesIfExists ( dependencyArtifactResDirectoryList ) . autoAddOverlay ( ) // NB aapt only accepts a single assets parameter - combinedAssets is a merge of all assets . addRawAssetsDirectoryIfExists ( combinedAssets ) . addExistingPackageToBaseIncludeSet ( androidJar ) . setOutputApkFile ( outputFile ) . addConfigurations ( configurations ) . setVerbose ( aaptVerbose ) ; getLog ( ) . debug ( getAndroidSdk ( ) . getAaptPath ( ) + " " + commandBuilder . toString ( ) ) ; getLog ( ) . info ( "Generating apklib" ) ; try { executor . setCaptureStdOut ( true ) ; List < String > commands = commandBuilder . build ( ) ; executor . executeCommand ( getAndroidSdk ( ) . getAaptPath ( ) , commands , project . getBasedir ( ) , false ) ; } catch ( ExecutionException e ) { throw new MojoExecutionException ( "" , e ) ; } }
Generates an intermediate apk file (actually .ap_) containing the resources and assets.

@throws MojoExecutionException
Generates an intermediate apk file ( actually . ap_ ) containing the resources and assets .