コンパイルされたファイルへのパスを知る必要がある Android プロジェクト用の Gradle タスクを作成してい.class
ます。どうすればこのパスを取得できますか? このパスを提供する提案 (こことここ;の Gradle ドキュメントSourceSet
も参照)を見つけましsourceSets.main.output.classDir
たが、それを使用しようとするとエラーが発生します
'output'
ソース セット にプロパティが見つかりませんでしmain
た。
これは、次のような新しい最小限のプロジェクトを作成した場合でも発生しますbuild.gradle
。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
}
}
apply plugin: 'android'
android {
compileSdkVersion 22
buildToolsVersion "20.0.0"
task printClassesDir << {
println sourceSets.main.output.classesDir
}
}
この最小限のプロジェクトは正常にビルドされますが、タスクを実行するとエラーが発生しますprintClassesDir
。.class
タスクでファイル出力ディレクトリを取得するにはどうすればよいですか?
<build variant>.javaCompile.classpath
from this answer to another questionの提案も試しました。このプロパティにアクセスできました
applicationVariants.find{it.name == 'debug'}.javaCompile.classpath
しかし、このファイル コレクションは空です。
参考までに、私の最小限のプロジェクトの他のファイルを次に示します。
src/main/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="a.b">
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="22" />
<application>
<activity android:name=".Main">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
src/main/java/a/b/Main.java
package a.b;
import android.app.Activity;
public class Main extends Activity { }