misc/androidstudio: fix the classpath for gobind and gomobile

Before this CL, the JavaCompile.classpath property was evaluated early,
which resulted in missing classpath entries for first-time runs of
gradle. Delay the evaluation, making sure gobind and gomobile receives
the complete classpath.

Change-Id: Iba9be0bbf9f563eb18b2549ac8267f8db3b7dec1
Reviewed-on: https://go-review.googlesource.com/35177
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
diff --git a/misc/androidstudio/src/main/groovy/org/golang/mobile/GobindPlugin.groovy b/misc/androidstudio/src/main/groovy/org/golang/mobile/GobindPlugin.groovy
index f2e28e8..bd6e3e0 100644
--- a/misc/androidstudio/src/main/groovy/org/golang/mobile/GobindPlugin.groovy
+++ b/misc/androidstudio/src/main/groovy/org/golang/mobile/GobindPlugin.groovy
@@ -17,6 +17,7 @@
 import org.gradle.api.tasks.OutputFile
 import org.gradle.api.tasks.OutputDirectory
 import org.gradle.api.tasks.TaskAction
+import org.gradle.api.tasks.compile.JavaCompile
 
 import org.golang.mobile.OutputFileTask
 import org.golang.mobile.AARPublishArtifact
@@ -75,7 +76,7 @@
 		// First, generate the Java classes with the gobind tool.
 		Task bindTask = project.tasks.create("gobind${variant.name.capitalize()}", GobindTask)
 		bindTask.outputDir = outputDir
-		bindTask.classpath = variant.javaCompile.classpath
+		bindTask.javaCompile = variant.javaCompile
 		bindTask.bootClasspath = variant.javaCompile.options.bootClasspath
 		// TODO: Detect when updating the Java classes is redundant.
 		bindTask.outputs.upToDateWhen { false }
@@ -83,8 +84,7 @@
 		// Then, generate the JNI libraries with the gomobile tool.
 		Task libTask = project.tasks.create("gomobile${variant.name.capitalize()}", GomobileTask)
 		libTask.bootClasspath = variant.javaCompile.options.bootClasspath
-		// Add the R and databinding classes to the gomobile classpath.
-		libTask.classpath = project.files(variant.javaCompile.classpath, variant.javaCompile.destinationDir)
+		libTask.javaCompile = variant.javaCompile
 		// Dump the JNI libraries in the known project jniLibs directory.
 		// TODO: Use a directory below build for the libraries instead. Adding a jni directory to the jniLibs
 		// property of android.sourceSets only works, but only if the directory changes every build.
@@ -190,11 +190,11 @@
 	@OutputDirectory
 	File outputDir
 
-	FileCollection classpath
+	JavaCompile javaCompile
 
 	@TaskAction
 	def gobind() {
-		run("gobind", project.gobind.GOBIND, ["-lang", "java", "-classpath", classpath.join(File.pathSeparator), "-outdir", outputDir.getAbsolutePath()])
+		run("gobind", project.gobind.GOBIND, ["-lang", "java", "-classpath", javaCompile.classpath.join(File.pathSeparator), "-outdir", outputDir.getAbsolutePath()])
 	}
 }
 
@@ -207,7 +207,7 @@
 	@OutputDirectory
 	File libsDir
 
-	FileCollection classpath
+	JavaCompile javaCompile
 
 	@TaskAction
 	def gomobile() {
@@ -215,10 +215,10 @@
 			outputFile = File.createTempFile("gobind-", ".aar")
 		}
 		def cmd = ["bind", "-i"]
-		if (classpath) {
-			cmd << "-classpath"
-			cmd << classpath.join(File.pathSeparator)
-		}
+		// Add the generated R and databinding classes to the classpath.
+		def classpath = project.files(javaCompile.classpath, javaCompile.destinationDir)
+		cmd << "-classpath"
+		cmd << classpath.join(File.pathSeparator)
 		cmd << "-o"
 		cmd << outputFile.getAbsolutePath()
 		cmd << "-target"