@@ -27,7 +27,6 @@ import com.android.build.gradle.api.BaseVariantOutput
27
27
import com.android.build.gradle.api.LibraryVariant
28
28
import com.android.build.gradle.api.TestVariant
29
29
import com.android.repository.Revision
30
- import com.getkeepsafe.dexcount.sdkresolver.SdkResolver
31
30
import org.gradle.api.DomainObjectCollection
32
31
import org.gradle.api.Plugin
33
32
import org.gradle.api.Project
@@ -38,10 +37,13 @@ import kotlin.reflect.KClass
38
37
39
38
open class DexMethodCountPlugin : Plugin <Project > {
40
39
companion object {
41
- var sdkLocation: File ? = SdkResolver .resolve(null )
42
- const val VERSION_3_ZERO_FIELD : String = " com.android.builder.Version" // <= 3.0
43
- const val VERSION_3_ONE_FIELD : String = " com.android.builder.model.Version" // > 3.1
44
- const val AGP_VERSION_FIELD : String = " ANDROID_GRADLE_PLUGIN_VERSION"
40
+ var sdkLocation: File ? = null
41
+ private const val VERSION_3_ZERO_FIELD : String = " com.android.builder.Version" // <= 3.0
42
+ private const val VERSION_3_ONE_FIELD : String = " com.android.builder.model.Version" // > 3.1
43
+ private const val AGP_VERSION_FIELD : String = " ANDROID_GRADLE_PLUGIN_VERSION"
44
+ private const val AGP_VERSION_3 : String = " 3.0.0"
45
+ private const val ANDROID_EXTENSION_NAME = " android"
46
+ private const val SDK_DIRECTORY_METHOD = " getSdkDirectory"
45
47
}
46
48
47
49
override fun apply (project : Project ) {
@@ -64,18 +66,17 @@ open class DexMethodCountPlugin: Plugin<Project> {
64
66
exception = e
65
67
}
66
68
67
- println (gradlePluginVersion)
68
-
69
69
if (gradlePluginVersion == null && exception != null ) {
70
70
throw IllegalStateException (" dexcount requires the Android plugin to be configured" , exception)
71
71
} else if (gradlePluginVersion == null ) {
72
72
throw IllegalStateException (" dexcount requires the Android plugin to be configured" )
73
73
}
74
74
75
- sdkLocation = SdkResolver .resolve(project)
75
+ val android = project.extensions.findByName(ANDROID_EXTENSION_NAME )
76
+ sdkLocation = android?.javaClass?.getMethod(SDK_DIRECTORY_METHOD )?.invoke(android) as File ?
76
77
77
78
val gradlePluginRevision = Revision .parseRevision(gradlePluginVersion, Revision .Precision .PREVIEW )
78
- val threeOhRevision = Revision .parseRevision(" 3.0.0 " )
79
+ val threeOhRevision = Revision .parseRevision(AGP_VERSION_3 )
79
80
80
81
val isBuildTools3 = gradlePluginRevision.compareTo(threeOhRevision, Revision .PreviewComparison .IGNORE ) >= 0
81
82
0 commit comments