2016-11-10 4 views
0

Когда я использую задачу градиента для создания файла android .apk, он выводит его в папку проекта build\javafxports\android (как обычные, так и невыровненные файлы). Я не мог найти настройки для изменения выходной папки.Как изменить папку вывода по умолчанию для сгенерированных файлов apk?

Когда я экспортирую jar в eclipse, я могу указать папку назначения. Как я могу это сделать с 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, если существует и создавая ее снова при каждом запуске). Поэтому вы должны сделать это самостоятельно, иначе задача пропустит его.

EDIT

Список глобальных переменных, которые предназначены быть изменены при необходимости являются here, но полный список переменных, включенных в настоящее время плагин можно найти в плагине source code.

Переменные типа installDirectory используются внутри плагина, и они инициализируются значением по умолчанию, выполняют некоторые действия, такие как удаление предыдущего каталога и его повторное создание (поэтому Gradle выполняет задачу). В случае переопределения эти действия не будут выполнены, поэтому вам следует позаботиться об этом (или создать для этого задачу).

+0

спасибо. что этот параметр должен быть указан здесь http://docs.gluonhq.com/charm/4.1.0/#_properties_3? – Mark

+0

Нет, он не указан там, так как он изначально не предназначен для переопределения. Вот почему вы должны заботиться о том, чтобы удалить его содержимое. –

+0

ОК. есть ли список всех опций где-нибудь? как вы узнали об этом? я предпочитаю читать, а не спрашивать каждую вещь. – Mark

0

Это работает для стандартного андроида плагина изменить каталог сгенерированных файлов APK:

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

это недопустимый синтаксис. см. комментарии по этому вопросу. Спасибо хоть. – Mark