2013-10-06 1 views
6

私はAndroidプロジェクトをコンパイルするgradle.buildを作成しました。それは正しいAPKを生成しており、ポストビルドステップとして、より意味のある名前で別のフォルダにコピーしたいと考えています。ソースファイルがないのでタスクXをスキップします。

私はこれを達成するために、このタスクを書いている: 『:HexPath-アンドロイド:copyBundle』それは何のソースファイルを持っていないよう

task copyBundle(type: Copy) { 
    def versionCode = android.defaultConfig.versionCode 
    def buildDate = new Date().format("yyyy-MM-dd'T'HH-mm") 

    def outputFile = 'HexPath-android-release-' + buildDate + '-' + versionCode + '.apk' 

    println "Copying file to " + outputFile 

    from('HexPath-android/build/apk/') 
    into('output/android/') 
    include('HexPath-android-release.apk') 
    rename ('HexPath-android-release.apk', outputFile) 
} 

問題私が午前には、それが「スキップタスクを言って、このタスクをスキップしていることです。

私が間違ってやっているものを上の任意のアイデア?

ザ・フォルダからが正しく、いくつかの.apksを持っている。 ザ・ファイル名が正しいことを含んでいる。 スクリプトが実行されたときに、出力フォルダが存在しません。 名前の変更は有効なファイル名です。

+0

'HexPath-android'はこのコピータスクのビルドスクリプトを含むディレクトリではありませんか?また、タスクは、apkを生成するタスクにタスクの依存関係が欠落しているようです。 –

+0

ええ、それを指摘してくれてありがとう。 from関数で間違ったパスを使用した場合のように見えます。 – Demonofloom

答えて

0

フォルダには複数のAPKファイルがありますが、ここでは1つのファイルのみが含まれていますが、正確に 'HexPath-android-release.apk'という名前にする必要があります。このファイルはありますか?

あなたがするたびにコピーされた、まさにこの一つのファイルにしたい場合は、私はこのような何かの終わりを書き換えることをお勧めしたいが:

from('HexPath-android/build/apk/HexPath-android-release.apk') { 
    rename { outpuFile } 
} 
into('output/android/') 

しかし、複数のファイルをコピーしたい場合は、その後、あなたの「を含む」の部分を修正いくつかのワイルドカードを使用し、出力名を作成するためにクロージャを作成することができます。お役に立てれば。

また、プロジェクト自体はHexPath-androidではありません。パスは 'build ...'から始めるべきではありませんか?

関連する問題