Simplified SdkLocator usage in AndroidDependencyResolver
This commit is contained in:
+2
-9
@@ -38,16 +38,9 @@ data class AndroidDependency(
|
|||||||
object AndroidDependencyResolver {
|
object AndroidDependencyResolver {
|
||||||
private fun getAndroidSdkJar(project: Project): AndroidDependency? {
|
private fun getAndroidSdkJar(project: Project): AndroidDependency? {
|
||||||
val androidExtension = project.extensions.findByName("android") as BaseExtension? ?: return null
|
val androidExtension = project.extensions.findByName("android") as BaseExtension? ?: return null
|
||||||
val sdkLocation = getClassOrNull("com.android.build.gradle.internal.SdkLocationSourceSet")?.let { sdkLocationSourceSetClass ->
|
val sdkLocation = getClassOrNull("com.android.build.gradle.internal.SdkLocator")?.let { sdkLocatorClass ->
|
||||||
val sdkLocationSourceSet = sdkLocationSourceSetClass.kotlin.constructors.firstOrNull()?.let { callable ->
|
|
||||||
callable.findParameterByName("projectRoot")?.let { param ->
|
|
||||||
callable.callBy(mapOf(param to project.rootDir))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val sdkLocatorClass = getClassOrNull("com.android.build.gradle.internal.SdkLocator")
|
|
||||||
val sdkLocation =
|
val sdkLocation =
|
||||||
sdkLocatorClass?.getMethodOrNull("getSdkLocation", sdkLocationSourceSetClass)?.invoke(sdkLocatorClass, sdkLocationSourceSet)
|
sdkLocatorClass.getMethodOrNull("getSdkLocation", File::class.java)?.invoke(sdkLocatorClass, project.rootDir)
|
||||||
sdkLocation?.javaClass?.getMethodOrNull("getDirectory")?.invoke(sdkLocation) as? File
|
sdkLocation?.javaClass?.getMethodOrNull("getDirectory")?.invoke(sdkLocation) as? File
|
||||||
} ?: return null
|
} ?: return null
|
||||||
val sdkHandler = AndroidSdkHandler.getInstance(sdkLocation)
|
val sdkHandler = AndroidSdkHandler.getInstance(sdkLocation)
|
||||||
|
|||||||
Reference in New Issue
Block a user