44

I am using IntelliJ and am able to build and run my Gradle project via the GUI by pressing the play button, and yet running this command from the terminal

./gradlew --stacktrace deploy

produces this console output, and the build fails:

FAILURE: Build failed with an exception.

* What went wrong:
Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
> Could not create service of type PluginResolutionStrategyInternal using BuildScopeServices.createPluginResolutionStrategy().

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

* Exception is:
org.gradle.internal.service.ServiceCreationException: Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:816)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:767)
        at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:571)
        at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:628)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters(DefaultServiceRegistry.java:780)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:766)
        at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:571)
        at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:628)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters(DefaultServiceRegistry.java:780)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:766)
        at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:571)
        at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:628)
        at org.gradle.internal.service.DefaultServiceRegistry.find(DefaultServiceRegistry.java:295)
        at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:284)
        at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:279)
        at org.gradle.initialization.DefaultGradleLauncherFactory.doNewInstance(DefaultGradleLauncherFactory.java:179)
        at org.gradle.initialization.DefaultGradleLauncherFactory.newInstance(DefaultGradleLauncherFactory.java:108)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:40)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:61)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        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:122)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.internal.service.ServiceCreationException: Could not create service of type PluginResolutionStrategyInternal using BuildScopeServices.createPluginResolutionStrategy().
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:816)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:767)
        at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:571)
        at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:628)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters(DefaultServiceRegistry.java:780)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:766)
        at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:571)
        at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:628)
        at org.gradle.internal.service.DefaultServiceRegistry.find(DefaultServiceRegistry.java:295)
        at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:284)
        at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:279)
        at org.gradle.internal.service.scopes.BuildScopeServices.defaultScriptPluginFactory(BuildScopeServices.java:301)
        at org.gradle.internal.service.scopes.BuildScopeServices.createScriptPluginFactory(BuildScopeServices.java:293)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.internal.service.ReflectionBasedServiceMethod.invoke(ReflectionBasedServiceMethod.java:35)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:814)
        ... 61 more
Caused by: org.gradle.api.GradleException: Could not generate a proxy class for class org.gradle.plugin.management.internal.DefaultPluginResolutionStrategy.
        at org.gradle.api.internal.AbstractClassGenerator.generateUnderLock(AbstractClassGenerator.java:228)
        at org.gradle.api.internal.AbstractClassGenerator.generate(AbstractClassGenerator.java:80)
        at org.gradle.api.internal.ClassGeneratorBackedInstantiator.newInstance(ClassGeneratorBackedInstantiator.java:36)
        at org.gradle.plugin.internal.PluginUsePluginServiceRegistry$BuildScopeServices.createPluginResolutionStrategy(PluginUsePluginServiceRegistry.java:106)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.internal.service.ReflectionBasedServiceMethod.invoke(ReflectionBasedServiceMethod.java:35)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:814)
        ... 79 more
Caused by: java.lang.NoSuchMethodError: sun.misc.Unsafe.defineClass(Ljava/lang/String;[BIILjava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class;
        at org.gradle.internal.classloader.ClassLoaderUtils.define(ClassLoaderUtils.java:104)
        at org.gradle.model.internal.asm.AsmClassGenerator.define(AsmClassGenerator.java:58)
        at org.gradle.model.internal.asm.AsmClassGenerator.define(AsmClassGenerator.java:54)
        at org.gradle.api.internal.AsmBackedClassGenerator$ClassBuilderImpl.generate(AsmBackedClassGenerator.java:967)
        at org.gradle.api.internal.AbstractClassGenerator.generateUnderLock(AbstractClassGenerator.java:226)
        ... 88 more
the_prole
  • 8,275
  • 16
  • 78
  • 163
  • Could be related to this post? https://stackoverflow.com/questions/30840526/gradle-could-not-create-service-of-type-initscripthandler-using-buildscopeservic – the_prole Nov 13 '18 at 00:54
  • i think im just using java 11, looks like maybe that's the problem `java.lang.NoSuchMethodError: sun.misc.Unsafe.defineClass` – the_prole Nov 13 '18 at 00:59

18 Answers18

40

Worked, was using Java 11, switched to Java 8

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
./gradlew --stacktrace deploy
the_prole
  • 8,275
  • 16
  • 78
  • 163
  • 3
    What if `/usr/libexec/java_home` doesn't exist? – Zoe Apr 17 '20 at 17:50
  • Maybe Android studio has an internal version of Java its using? Isn't `libexec` where all Java versions are housed? – the_prole Jun 24 '20 at 21:47
  • 2
    If it was, it would be tied to system packages and not Android Studio itself. It's evidently not from Java itself or it would've existed, probably. iDunno. All. The versions are actually stored separately elsewhere, so libexec is probably an abstraction layer (I think) – Zoe Jun 24 '20 at 23:09
13

The issues does come from Java 11, but similarly to the version name issue after the upgrade to Java 10, the issue can be fixed by upgrading Gradle. The issue isn't present in Gradle 5.5, but I'm not sure which version is the earliest to support it. (5.5 is, at the time of writing, the newest version of Gradle)

If you're using the per project Gradle wrapper (with a gradle/wrapper/gradle-wrapper.properties), all you have to do is change the line containing the distribution URL, and bump the version:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-bin.zip
Olivia
  • 185
  • 1
  • 6
  • 1
    Just ran into the same issue by running a Gradle 4.7 on JVM11. Upgrading Gradle to 5.2.1 was enough to get rid of the error. – Jan Dolejsi Dec 07 '20 at 21:31
5

Permissions

I was using a remote Jenkins and the stack trace started similarly to the one in this question but the root cause was failure to create a .gradle

dir as the stack trace shows:

Caused by: org.gradle.api.UncheckedIOException: Failed to create parent directory '/var/lib/jenkins/jobs/APPNAME/workspace/COMPANY/Android/APPNAME/.gradle' when creating directory '/var/lib/jenkins/jobs/APPNAME/workspace/COMPANY/Android/APPNAME/.gradle/4.6/fileHashes'
at org.gradle.util.GFileUtils.mkdirs(GFileUtils.java:272)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:58)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:34)
at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:92)
at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:66)
at org.gradle.cache.internal.DefaultCacheRepository$PersistentCacheBuilder.open(DefaultCacheRepository.java:124)
at org.gradle.api.internal.changedetection.state.CrossBuildFileHashCache.<init>(CrossBuildFileHashCache.java:41)
at org.gradle.internal.service.scopes.BuildSessionScopeServices.createCrossBuildFileHashCache(BuildSessionScopeServices.java:194)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.internal.service.ReflectionBasedServiceMethod.invoke(ReflectionBasedServiceMethod.java:35)
at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:855)  

I found out that the dir it was trying to build in was owned by the root user but the Jenkins ran with the jenkins user. I solved it by chowning the dir to the jenkins user.

Sridhar Sarnobat
  • 25,183
  • 12
  • 93
  • 106
Tom
  • 1,203
  • 4
  • 21
  • 36
  • Thanks, this was my issue too. This is what happens when I create a new Mac user because my existing one is so bloated (because of Google Chrome). – Sridhar Sarnobat Mar 23 '21 at 00:35
4

run this find ./ -name "*.lock" -type f -delete in project root directory

utkukutlu
  • 400
  • 1
  • 4
  • 5
3

I fixed the issue by removing .gradle/checksums/checksums.lock

and all *.lock files :(

Quimby
  • 331
  • 2
  • 4
2

I had this issue when using Android Studio with libgdx game library...

In my case I do File > Invalidate Caches / Restart... and also click on Invalidate and Restart operation and resolved ...

ultra.deep
  • 1,699
  • 1
  • 19
  • 23
2

I was in a similar situation. All i had to do was run chmod 777 .gradle/ on the project directory. You might need to use sudo.

romin21
  • 1,532
  • 1
  • 14
  • 35
2

From my experience, your gradle version is too low, if you are JDK17, please use gradle 7.0+

Shiro Pika
  • 21
  • 5
1

In my case I just opened up Android Studio and opened the project's folder, then Android Studio updated all the Gradle dependencies automatically. I do not use Android Studio to code (I use VSC), but after this I was able to run the project.

1

In my IntelliJ run configuration, I had just forgot to populate the Gradle Project field - building worked after filling that.

enter image description here

cellepo
  • 4,001
  • 2
  • 38
  • 57
1

Got this error when trying to build a cordova project

cordova run --emulator

Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=/home/user/Android/Sdk (recommended setting)
ANDROID_HOME=/home/user/Android/Sdk (DEPRECATED)
Using Android SDK: /home/user/Android/Sdk

FAILURE: Build failed with an exception.

* What went wrong:
Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
> Could not create service of type PluginResolutionStrategyInternal using BuildScopeServices.createPluginResolutionStrategy().

the above solution but like this worked for me ubuntu 18.04.6, npm 7.24.1, cordova 10.0.0, java 8

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
cordova run --emulator
Tulluss
  • 11
  • 2
0

I'm using Gradle 4.3.1 and this issue comes when I'm running Jenkinsfile pipeline concurrent runs where a given pipeline is running parallel runs of a single Gradle task on N. no. of Gradle projects) in stages section.

Removing parallel section from the stages stage script section doesn't result into this --or other weird issues that I have listed in my post below --OR-- when you just run on pipeline run (i.e. non-concurrent runs) of the pipeline.

See here for more about my pipeline job / issues I have faced.

Jenkins - java.lang.IllegalArgumentException: Last unit does not have enough valid bits & Gradle error: Task 'null' not found in root project

AKS
  • 16,482
  • 43
  • 166
  • 258
0
  • Open your project in show on explorer
  • select your project folder then go to property
  • then go to security then give access or permission to read, and write
  • basically check your project folder locked or not, if locked (To write) then give permission to write
TT.
  • 15,774
  • 6
  • 47
  • 88
0

The solution(React native) that worked for me. go to the .gradle folder and search for all .lock files in the subdirectories and delete them all. after that run the command gradlew clean and after that run your project with command react-native run-android.

I have also download a gradle6.6becasue that was deleted by someone from my system path.

0

I had this problem when referencing source code on my Macbook against a GoogleDrive mapped folder. When I moved my source code to a folder not using GoogleDrive mappings it started working again. I basically copied my source directory to my home directory, then gradle compiled fine. Seems some kind a filesystem reference was causing the problem.

barrypicker
  • 9,740
  • 11
  • 65
  • 79
0

I faced this issue recently, there is no specific answers for such issues as this may happen due to many reasons. You can try above solution which is given but I would suggest to check what is the permission given to your .gradle directory which is under your project directory (if you are not able to see .gradle then press Ctrl+H if using ubuntu)

If you working in ubuntu then locate to your project directory say if app name is my-app and then go to my-app and check permission with ll command (LL in small letters)

if above command give root root for .gradle then you need to change permission as ./gradlew clean or ./gradle bootJar may not able to use .gradle

you need to execute

sudo chown -R my-system-name:my-system-name .gradle

where my-system-name is your machine name so if machine name is manish then

sudo chown -R manish:manish .gradle
Kushwaha
  • 850
  • 10
  • 13
0

The solution is set old Java version/Java downgrade.

SOLUTION FOR UBUNTU

In my laptop I have JAVA installed in /usr/lib/jvm/

You can use this command in command line to set temporary JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

or simply update your .bashrc file in home

  1. JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/
  2. PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
  3. export JAVA_HOME**
MisterAnt
  • 173
  • 8
-1

Yes it works when switching from java 11 to lower version by running the following command in preoject directory...

export JAVA_HOME=/usr/libexec/java_home -v 1.8

  • 1
    passing options to the Java runtime should be done using the `JAVA_OPTS` environment variable, never using the `JAVA_HOME` one. – Alonso Dominguez Nov 26 '18 at 10:39
  • 1
    Perhaps that should've been: `export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)` - I don't know, I don't have a `/usr/libexec/java_home` – Peter V. Mørch Jul 15 '20 at 06:58