无法加载类';org.aspectj.bridge.MessageHandler';在android应用程序中运行gradle插件时

无法加载类';org.aspectj.bridge.MessageHandler';在android应用程序中运行gradle插件时,android,gradle,aspectj,Android,Gradle,Aspectj,我正在使用aspectjtools和aspectjrt为android创建一个AOP库-该库按预期工作 然后,我决定创建自己的插件,以对最终用户隐藏以下内容- final def variants = project.android.applicationVariants variants.all { variant -> variant.javaCompile.doLast { String[]

我正在使用
aspectjtools
aspectjrt
为android创建一个AOP库-该库按预期工作

然后,我决定创建自己的插件,以对最终用户隐藏以下内容-

final def variants = project.android.applicationVariants
        
 variants.all { variant ->
        
       variant.javaCompile.doLast {
        
            String[] args = ["-showWeaveInfo",
                             "-1.5",
                             "-inpath", javaCompile.destinationDir.toString(),
                             "-aspectpath", javaCompile.classpath.asPath,
                             "-d", javaCompile.destinationDir.toString(),
                             "-classpath", javaCompile.classpath.asPath,
                             "-bootclasspath", project.android.bootClasspath.join(File.pathSeparator)]
        
            new Main().run(args, new MessageHandler(true));
       }
}
插件的
build.gradle
-

plugins {
    id 'signing'
    id 'maven-publish'
    id 'kotlin'
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

dependencies {

    implementation gradleApi()
    implementation localGroovy()

    implementation 'com.android.tools.build:gradle:4.1.3'

    api 'org.aspectj:aspectjrt:1.9.6'
    api 'org.aspectj:aspectjtools:1.9.6'
}

task sourceJar(type: Jar) {

    classifier = 'sources'
    from sourceSets.main.allSource
}

publishing {
    publications {

        "$project.name"(MavenPublication) {
           artifact "$buildDir/libs/$project.name-" + ARTIFACT_VERSION_NAME + ".jar"
        }
    }
}
代码编译,jar被创建,我可以将它发布到
mavenLocal

然后,当我在我的新项目中使用它时,它可以检测插件并且不会抛出构建错误。这是该项目的
build.gradle
-

plugins {
    id 'com.android.application'
}

// being fetched from mavenLocal
apply plugin: 'com.yugankasharan.bernoulli'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {

   // some android dependencies
   
    // my Bernoulli library, being fetched from mavenCentral
    implementation 'com.yugankasharan.bernoulli:bernoulli:0.2.1'
}
但是当我运行它时,我得到了这个错误-

Unable to load class 'org.aspectj.bridge.MessageHandler'.

This is an unexpected error. Please file a bug containing the idea.log file.
我的日志告诉我,这发生在插件代码的
javaCompile.doLast
部分,我无法理解为什么会发生这种情况

  • 我认为这可以与Java版本相联系,但我在所有项目和模块中都明确使用了版本8
  • 我当时认为这可能是一个Gradle问题,但我在我的库和新项目中都使用了最新(和相同的版本)
  • 由于我的库正常工作,但我的插件没有正常工作,我很确定我在什么地方把插件设置搞砸了