Failed resolution of: Lorg/gradle/internal/classpath/Instrumented

Hi,

I’m trying to develop a Gradle plugin for Android that injects pieces of code to various places in the application source code. I have a particular application that gives me the following exception:

09-23 12:39:38.187  8233  8233 D AndroidRuntime: Shutting down VM
09-23 12:39:38.188  8233  8233 E AndroidRuntime: FATAL EXCEPTION: main
09-23 12:39:38.188  8233  8233 E AndroidRuntime: Process: com.sampleapp.test, PID: 8233
09-23 12:39:38.188  8233  8233 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/gradle/internal/classpath/Instrumented;
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.google.gson.internal.JavaVersion.determineMajorJavaVersion(JavaVersion.java:29)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.google.gson.internal.JavaVersion.<clinit>(JavaVersion.java:26)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.google.gson.internal.JavaVersion.getMajorJavaVersion(JavaVersion.java:81)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.google.gson.internal.reflect.ReflectionAccessor.<clinit>(ReflectionAccessor.java:36)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.google.gson.internal.reflect.ReflectionAccessor.getInstance(ReflectionAccessor.java:52)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.google.gson.internal.ConstructorConstructor.<init>(ConstructorConstructor.java:51)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.google.gson.Gson.<init>(Gson.java:206)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.google.gson.GsonBuilder.create(GsonBuilder.java:597)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.common.util.GsonUtil.createGson(GsonUtil.java:51)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.common.network.interceptor.ConfirmationInterceptor.<init>(ConfirmationInterceptor.java:32)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.common.network.interceptor.ConfirmationInterceptor.create(ConfirmationInterceptor.java:39)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.common.network.util.NetworkUtil.addInterceptors(NetworkUtil.java:156)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.common.network.util.NetworkUtil.createNewOkHttpClientBuilder(NetworkUtil.java:128)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.common.network.util.NetworkUtil.getOkHttpClientBuilder(NetworkUtil.java:120)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.common.network.util.NetworkUtil.getNonPinningRetrofit(NetworkUtil.java:91)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.common.network.util.NetworkUtil.getRetrofit(NetworkUtil.java:83)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.sampleapp.test.TestApplication.onCreate(TestApplication.java:106)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1189)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6460)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at android.app.ActivityThread.access$1300(ActivityThread.java:219)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:107)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:214)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7356)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "org.gradle.internal.classpath.Instrumented" on path: DexPathList[[zip file "/data/app/com.sampleapp.test-HnX9HxaEHCaVMBqlz2Ja8Q==/base.apk"],nativeLibraryDirectories=[/data/app/com.sampleapp.test-HnX9HxaEHCaVMBqlz2Ja8Q==/lib/arm64, /data/app/com.sampleapp.test-HnX9HxaEHCaVMBqlz2Ja8Q==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
09-23 12:39:38.188  8233  8233 E AndroidRuntime: 	... 27 more

My build.gradle.kts file is as follows:

plugins {
    `java-gradle-plugin`
    `maven-publish`
    `kotlin-dsl`
}

group = "com.sampleapp.test.plugin"
version = "1.0.0-SNAPSHOT"

gradlePlugin {
    plugins.create("TestPlugin") {
        id = "sampleapp.plugin.test"
        implementationClass = "com.sampleapp.test.plugin.TestPlugin"
    }
}

repositories {
    mavenCentral()
    google()
    maven(url = "https://plugins.gradle.org/m2/")
}

publishing {
    publications {
        create<MavenPublication>("maven") {
            artifactId = "testplugin"
            from(components["kotlin"])
        }
    }
}

dependencies {

    implementation(kotlin(module ="stdlib", version = "1.3.72"))

    implementation(group = "com.android.tools.build", name = "gradle", version = "4.2.2")

    implementation(group = "org.javassist", name = "javassist", version = "3.28.0-GA")

    implementation(group = "commons-io", name = "commons-io", version = "2.11.0")

    implementation(group = "com.google.code.gson", name = "gson", version = "2.8.8")

    testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.0")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}

As I understand it, gradle doesn’t append the necessary classes classpath into the dex path list. What can I do at this point?