如何更改生成的apk文件的默认输出文件夹?

时间:2016-11-10 00:38:16

标签: android eclipse gradle gluon-mobile buildship

当我使用gradle任务创建一个android .apk文件时,它会将它输出到项目的build\javafxports\android文件夹(常规和未对齐文件)。我找不到更改输出文件夹的设置。

当我在eclipse中导出jar时,我可以指定目标文件夹。我怎么能用apk文件呢?

这是我的build.gradle文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.1.1'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

mainClassName = 'com.gluonapplication.GluonApplication'

dependencies {
    compile 'com.gluonhq:charm:4.0.1'
}

jfxmobile {
    downConfig {
        version = '3.0.0'
        plugins 'display', 'lifecycle', 'statusbar', 'storage'
    }
    android {
        compileSdkVersion = 24
        manifest = 'src/android/AndroidManifest.xml'
        androidSdk = 'C:/Users/Mark/AppData/Local/Android/sdk'
    }
    ios {
        infoPList = file('src/ios/Default-Info.plist')
        forceLinkClasses = [
                'com.gluonhq.**.*',
                'javax.annotations.**.*',
                'javax.inject.**.*',
                'javax.json.**.*',
                'org.glassfish.json.**.*'
        ]
    }
}

2 个答案:

答案 0 :(得分:1)

jfxmobile插件允许更改将创建apk的路径。

使用installDirectory

jfxmobile {
    downConfig {
        version = '3.0.0'
        plugins 'display', 'lifecycle', 'statusbar', 'storage'
    }
    android {
        installDirectory = file('/full/path/of/custom/folder')
        manifest = 'src/android/AndroidManifest.xml'
    }
}

请注意,在运行android任务之前,该文件夹应该存在。目前,该插件管理默认安装文件夹(删除它,以及apk,如果存在并在每次运行时再次创建它)。所以你必须自己动手,否则任务就会跳过它。

修改

如果需要,要修改的全局变量列表为here,但插件中当前包含的变量的完整列表可以在插件source code中找到。

插件在内部使用installDirectory等变量,并使用默认值初始化它们,执行一些操作,例如删除上一个目录并再次创建(因此Gradle执行任务)。在覆盖的情况下,这些操作将不会被执行,因此您应该自己处理(或者为此创建任务)。

答案 1 :(得分:0)

这适用于标准的 android插件来更改生成的APK的目录:

android {
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.outputFile = file("/some/dir/" + variant.name + "/" + archivesBaseName + ".apk")
        }
    }
}