How to define apk output directory when using gradle?

后端 未结 4 755
孤城傲影
孤城傲影 2020-12-08 08:07

How to define apk output directory when using gradle?

I would like to have possibility to upload apk to shared folder after each build.

4条回答
  •  伪装坚强ぢ
    2020-12-08 08:35

    thats work for me:

    android.applicationVariants.all { variant ->
        def outputName = // filename
        variant.outputFile = file(path_to_filename)
    }
    

    or for Gradle 2.2.1+

    android {
        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                output.outputFile = new File(path_to_filename, output.outputFile.name)
            }
        }
    }
    

    but "clean" task will not drop that apk, so you should extend clean task as below:

    task cleanExtra(type: Delete) {
        delete outputPathName
    }
    
    clean.dependsOn(cleanExtra)
    

    full sample:

    apply plugin: 'android'
    
    def outputPathName = "D:\\some.apk"
    
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.3"
    
        defaultConfig {
            minSdkVersion 8
            targetSdkVersion 19
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    
        applicationVariants.all { variant ->
            variant.outputFile = file(outputPathName)
        }
    }
    
    dependencies {
        compile 'com.android.support:appcompat-v7:19.+'
        compile fileTree(dir: 'libs', include: ['*.jar'])
    }
    
    task cleanExtra(type: Delete) {
        delete outputPathName
    }
    
    clean.dependsOn(cleanExtra)
    

提交回复
热议问题