clover / clover-android-sdk

Clover SDK for developing applications on Clover Station/Mobile/Mini/Flex

Home Page:https://docs.clover.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

java.lang.NoClassDefFoundError: Could not initialize class com.android.build.gradle.LibraryPlugin

pabiagioli opened this issue · comments

Hi,
I did a fresh install of Android Studio a week ago and it asked me to update several things like gradle version, plugin names, Build tools and Target APIs.

This is how the build.gradle file ended up in my local environment:

group = 'com.clover.sdk'
version = '137'


apply plugin: 'com.android.library'
apply plugin: 'android-maven'

repositories {
  mavenLocal()
  mavenCentral()
}

dependencies {
    testCompile 'junit:junit:4.12'
    testCompile "org.mockito:mockito-core:1.9.5"
}

task createVersionInformation  {
  def resDir = new File(buildDir, 'generated/buildinfo/')
  def destDir = new File(resDir, 'META-INF/')

  android {
    sourceSets {
      main.resources {
        srcDir resDir
      }
    }
  }

  doLast {
    def is_lax = System.getenv('CLOVER_BUILD_LAX_MODE')
    is_lax = is_lax && is_lax.toBoolean()
    destDir.mkdirs()
    def proj = project.name
    def vfile = new File(destDir, 'BUILD_INFO.' + proj)

    if (is_lax) {
      println("BUILDING IN LAX MODE")
      vfile.text = "$proj: Built in lax mode - no git information available\n"
      return
    }

    def stdout = new ByteArrayOutputStream()
    exec {
      commandLine 'git', 'log', '-1', '--format=%H'
      standardOutput = stdout
    }
    def git_hash = stdout.toString().trim()

    stdout.reset()
    exec {
      commandLine 'git', 'config', 'remote.origin.url'
      standardOutput = stdout
    }
    def remote = stdout.toString().trim()

    def dirty = exec {
      commandLine 'git', 'diff-index', '--quiet', 'HEAD'
      ignoreExitValue true
    }
    dirty = dirty.getExitValue() == 0 ?
      ' (Clean workspace)' : '-DIRTY using dirty workspace!'


    def builder = ''
    if (this.hasProperty('cloverBuilderString')) {
      builder = '; Builder: ' + cloverBuilderString
    }

    vfile.text = "$proj: Built from $remote at $git_hash$dirty$builder\n"
  }
}

project.afterEvaluate {
  tasks.findAll { task -> task.name.startsWith('package') }.each { t ->
    t.dependsOn createVersionInformation
  }
}

android {
  lintOptions {
    abortOnError false
  }
  compileSdkVersion 25
  buildToolsVersion "25.0.0"

  defaultConfig {
    minSdkVersion 16
    targetSdkVersion 25
  }

  packagingOptions {
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/NOTICE'
  }

  // tell Android studio that the instrumentTest source set is located in the unit test source set
  sourceSets {
    main {
      manifest.srcFile 'src/main/AndroidManifest.xml'
    }
  }
}
dependencies {
    compile files('lib/calc.jar')
}

ant.importBuild 'javadoc.xml'

apply plugin: 'signing'

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.3'
  }
}
apply plugin: 'io.codearte.nexus-staging'

uploadArchives {
  repositories {
    mavenDeployer {
      beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

      repository(url: "${upload_release_url}") {
        authentication(userName: "${upload_user}", password: "${upload_password}")
      }
      snapshotRepository(url: "${upload_snapshot_url}") {
        authentication(userName: "${upload_user}", password: "${upload_password}")
      }

      pom.project {
        parent {
          groupId 'org.sonatype.oss'
          artifactId 'oss-parent'
          version '7'
        }

        name 'Clover Android SDK'
        description 'Android services and objects used for interacting with Clover Services'
        url 'http://www.clover.com/'

        licenses {
          license {
            name 'The Apache Software License, Version 2.0'
            url 'http://www.apache.org/licenses/LICENSE-2.0'
            distribution 'repo'
          }
        }

        scm {
          url "https://github.com/clover/clover-android-sdk"
          connection "https://github.com/clover/clover-android-sdk.git"
          developerConnection "git@github.com:clover/clover-android-sdk.git"
        }

        developers {
          developer {
            name 'Clover Engineering Team'
            url 'https://www.clover.com/team'
          }
        }
      }
    }
  }
}

task sourcesJar(type: Jar) {
  classifier = 'sources'
  from android.sourceSets.main.java.srcDirs
}

artifacts {
  archives sourcesJar
}

signing {
   required = { gradle.taskGraph.hasTask("uploadArchives") }
   sign configurations.archives
}

nexusStaging {
  packageGroup = "com.clover" //optional if packageGroup == project.getGroup() ------>  NOTE: project.getGroup() returns com.clover.sdk
}

I found this issue when building with Gradle

➜  clover-android-sdk-examples git:(master) ✗gradle build --stacktrace
Parallel execution is an incubating feature.

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/pablo.biagioli/dev-folder/aaj/proposals/clover-android-sdk/clover-android-sdk/build.gradle' line: 20

* What went wrong:
A problem occurred evaluating project ':clover-android-sdk'.
> Failed to apply plugin [id 'com.android.library']
   > Could not create plugin of type 'LibraryPlugin'.

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':clover-android-sdk'.
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:92)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:176)
        at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:181)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
        at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:573)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:125)
        at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
        at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
        at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:151)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:33)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:112)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:92)
        at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:66)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:79)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:51)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:59)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.HintGCAfterBuild.execute(HintGCAfterBuild.java:44)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:293)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'com.android.library']
        at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:155)
        at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:112)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyType(DefaultObjectConfigurationAction.java:113)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:36)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:80)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:136)
        at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:44)
        at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.java:34)
        at org.gradle.api.Script$apply$0.callCurrent(Unknown Source)
        at build_apbo4b6slyxt5137dy2qisr0r.run(.../clover-android-sdk/clover-android-sdk/build.gradle:20)
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
        ... 58 more
Caused by: org.gradle.api.plugins.PluginInstantiationException: Could not create plugin of type 'LibraryPlugin'.
        at org.gradle.api.internal.plugins.DefaultPluginManager.instantiatePlugin(DefaultPluginManager.java:61)
        at org.gradle.api.internal.plugins.DefaultPluginManager.producePluginInstance(DefaultPluginManager.java:166)
        at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:133)
        ... 68 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.android.build.gradle.LibraryPlugin
        at org.gradle.api.internal.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:56)
        at org.gradle.api.internal.plugins.DefaultPluginManager.instantiatePlugin(DefaultPluginManager.java:59)
        ... 70 more


BUILD FAILED

Total time: 0.931 secs

The SO post didn't work.
Same output from Android Studio:

Executing tasks: [:clover-android-sdk:generateDebugSources, :clover-android-sdk:compileDebugSources, :clover-android-sdk-examples:generateDebugSources, :clover-android-sdk-examples:compileDebugSources]

Parallel execution with configuration on demand is an incubating feature.

FAILURE: Build failed with an exception.

* Where:
Build file '...clover-android-sdk/clover-android-sdk/build.gradle' line: 20

* What went wrong:
A problem occurred evaluating project ':clover-android-sdk'.
> Failed to apply plugin [id 'android-library']
   > Could not create plugin of type 'LibraryPlugin'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1.105 secs

Can you confirm what your com.android.tools.build:gradle version is?

Here is the Gradle classpath and mavenCentral

buildscript {
  repositories {
    mavenCentral()
    jcenter()
  }
  def mavenPlugin = "com.github.dcendents:android-maven-plugin:1.2"
  if (gradle.gradleVersion.equals("2.7")) {
    mavenPlugin = "com.github.dcendents:android-maven-gradle-plugin:1.3"
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:2.2.2'
    classpath mavenPlugin
    classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0'
  }
}

Do to this issue having to do more with gradle then the content of the sdk itself I encourage you to move your question to devask.clover.com

Ok, I'll follow your advice
Thanks for everything