我在做的类文件字节码转换得到dex'd看起来像这样在我的build.gradle文件中有一个自定义任务:访问sdk.dir值
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
大加赞赏,我是从gradle这个倦怠患:d II RC从过去调查这个问题,问题是sdk目录var在我的'afterEvaluate'后面实例化,并且因此它不可用。所以手动加载它可能是目前唯一的解决方案,并且这对于跨平台开发来说足够好。 – dskinner
println“$ {android.getSdkDirectory()。getAbsolutePath()}”适用于1.5.0 –