2016-11-10 75 views
0

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

当我在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.**.*' 
     ] 
    } 
} 
+0

你有没有试过[这](http://stackoverflow.com/questions/22833297/how-to-define-apk-output-directory-when-using-gradle#23280937)? –

+0

@MiroMarkaravanes谢谢,但语法似乎与我有什么不同。你能帮我转换吗?我添加了我的gradle文件。 – Mark

回答

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执行任务)。在重写的情况下,这些动作不会被执行,所以你应该自己照顾(或者为此创建一个任务)。

+0

谢谢。该选项应该在此处列出http://docs.gluonhq.com/charm/4.1.0/#_properties_3? – Mark

+0

不,它不在那里列出,因为它最初并不打算被覆盖。这就是为什么你必须小心删除它的内容。 –

+0

好的。有没有一个列表,然后在某个地方的所有选项?比如你怎么知道那个?我喜欢阅读而不是问每一件事。 – Mark

0

这适用于标准Android插件改变所产生的APK的目录:

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

这不是有效的语法。看到关于这个问题的评论。谢谢。 – Mark

相关问题