У меня есть пользовательская задача в моем файле build.gradle, который преобразует байт-коды в файлы классов, прежде чем получить dex'd, который выглядит так:
task droidcook(type: JavaExec) {
main 'org.tsg.android.asm.Main'
}
afterEvaluate { project ->
android.applicationVariants.each { variant ->
variant.javaCompile.doLast {
project.tasks.droidcook.configure {
classpath variant.javaCompile.classpath
classpath "build/classes/" + variant.dirName
classpath sdk.dir + "/platforms/android-19/android.jar"
classpath "compile-libs/droidcook.jar"
args "build/classes/" + variant.dirName
args "com.example"
// args "-debug"
// args "-asmifier"
}
project.tasks.droidcook.execute()
}
}
}
Проблема с вышесказанным - это строка classpath sdk.dir + ...
, где sdk.dir
не оценивается соответствующим образом. Чтобы получить эту работу, мне в настоящее время нужно жестко закодировать путь к android.jar
.
Бонусные баллы, если вы можете ответить с соответствующим значением, чтобы заменить android-19
на доступ к платформе android.jar
на основе конфигурации проекта.: D