aboutsummaryrefslogtreecommitdiff
path: root/runners
diff options
context:
space:
mode:
authorknize <kirill.knize@gmail.com>2017-03-31 01:53:53 +0300
committerknize <kirill.knize@gmail.com>2017-03-31 01:53:53 +0300
commit60f72380b49ed04734a10a99aac080f3483ee71b (patch)
tree9f04a8d920bb9e21b113a3cf62cb105eb102b760 /runners
parentdd0e4af1a4a6c638ecdc0d29f9abb7b77641a136 (diff)
downloaddokka-60f72380b49ed04734a10a99aac080f3483ee71b.tar.gz
dokka-60f72380b49ed04734a10a99aac080f3483ee71b.tar.bz2
dokka-60f72380b49ed04734a10a99aac080f3483ee71b.zip
Fix dokka-android to support new build tools
Support getting variantManager after android build tools 2.3.0 API changes Fix for issue #140
Diffstat (limited to 'runners')
-rw-r--r--runners/android-gradle-plugin/build.gradle2
-rw-r--r--runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt25
2 files changed, 20 insertions, 7 deletions
diff --git a/runners/android-gradle-plugin/build.gradle b/runners/android-gradle-plugin/build.gradle
index e93add83..53bff935 100644
--- a/runners/android-gradle-plugin/build.gradle
+++ b/runners/android-gradle-plugin/build.gradle
@@ -27,7 +27,7 @@ dependencies {
provided gradleApi()
provided localGroovy()
- provided 'com.android.tools.build:gradle:2.2.0'
+ provided 'com.android.tools.build:gradle:2.3.0'
}
task sourceJar(type: Jar) {
diff --git a/runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt b/runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt
index 3c1e2284..63168e7b 100644
--- a/runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt
+++ b/runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt
@@ -37,15 +37,28 @@ open class DokkaAndroidPlugin : Plugin<Project> {
}
}
+
+ private fun getVariantManagerOld(plugin: BasePlugin): VariantManager? {
+ val variantManagerProperty =
+ plugin.javaClass.kotlin.memberProperties
+ .find { it.name == "variantManager" } ?: return null
+ variantManagerProperty.isAccessible = true
+ return variantManagerProperty.get(plugin) as VariantManager
+ }
+
+ private fun getVariantManager(plugin: BasePlugin): VariantManager = plugin.variantManager
+
private fun collectClasspath(project: Project) {
val plugin = (project.plugins.findPlugin("android")
?: project.plugins.findPlugin("android-library")
- ?: project.plugins.findPlugin("com.android.test")) as BasePlugin
-
- val variantManagerProperty = plugin.javaClass.kotlin.memberProperties.find { it.name == "variantManager" }!!
- variantManagerProperty.isAccessible = true
- val variantManager = variantManagerProperty.get(plugin) as VariantManager
- variantManager.variantDataList.flatMapTo(allVariantsClassPath) { it.variantConfiguration.compileClasspath }
+ ?: project.plugins.findPlugin("com.android.test")
+ ?: throw Exception("Android plugin not found, please use dokka-android with android or android-library plugin.")) as BasePlugin
+ try {
+ val variantManager = getVariantManagerOld(plugin) ?: getVariantManager(plugin)
+ variantManager.variantDataList.flatMapTo(allVariantsClassPath) { it.variantConfiguration.compileClasspath }
+ } catch(e: Exception) {
+ throw Exception("Unsupported version of android build tools, could not access variant manager.", e)
+ }
}
}