2016-11-10 110 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

相關問題