How to define apk output directory when using gradle?
I would like to have possibility to upload apk to shared folder after each build.
All APKs you build are saved in project_name / module_name /build/outputs/apk/ . For more information, see Run Apps on a Hardware Device.
To change its path go to this path File > Settings... > Build, Execution, Deployment > Gradle In the Global Gradle settings Change Service directory path to what you want.
By default, gradle outputs generated source files into build/classes directory.
In File Explorer right-click on the This PC (or Computer) icon, then click Properties -> Advanced System Settings -> Environmental Variables. Under System Variables select Path, then click Edit. Add an entry for C:\Gradle\gradle-4.1\bin. Click OK to save.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With