Skip to content
This repository has been archived by the owner on Feb 11, 2022. It is now read-only.

AbstractMethodError using gradle 4.5 #177

Closed
musichin opened this issue Jan 31, 2018 · 20 comments
Closed

AbstractMethodError using gradle 4.5 #177

musichin opened this issue Jan 31, 2018 · 20 comments
Labels

Comments

@musichin
Copy link

musichin commented Jan 31, 2018

After updating gradle to version 4.5 the plugin doesn't work anymore. Error:

Stacktrace:

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project.
        at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:94)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:89)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:70)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.access$100(LifecycleProjectEvaluator.java:34)
        at org.gradle.configuration.project.LifecycleProjectEvaluator$ConfigureProject.run(LifecycleProjectEvaluator.java:110)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:667)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:136)
        at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
        at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:62)
        at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
        at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher.java:249)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.initialization.DefaultGradleLauncher.configureBuild(DefaultGradleLauncher.java:167)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:126)
        at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:109)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:78)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:75)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
        at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)
        at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:75)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:49)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:32)
        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:57)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)
        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:45)
        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.event.ListenerNotificationException: Failed to notify project evaluation listener.
        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:86)
        at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)
        at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)
        at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
        at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
        at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
        at com.sun.proxy.$Proxy28.afterEvaluate(Unknown Source)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:76)
        ... 81 more
Caused by: java.lang.AbstractMethodError: com.novoda.gradle.release.AndroidLibrary$LibraryUsage.getDependencyConstraints()Ljava/util/Set;
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.from(DefaultMavenPublication.java:191)
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
        at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
        at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
        at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:57)
        at com.novoda.gradle.release.ReleasePlugin$_addArtifact_closure3.doCall(ReleasePlugin.groovy:65)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
        at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
        at org.gradle.api.internal.AbstractPolymorphicDomainObjectContainer.create(AbstractPolymorphicDomainObjectContainer.java:61)
        at org.gradle.api.publish.internal.DefaultPublicationContainer_Decorated.create(Unknown Source)
        at org.gradle.api.publish.internal.DefaultPublicationContainer_Decorated$create.call(Unknown Source)
        at com.novoda.gradle.release.ReleasePlugin.addArtifact(ReleasePlugin.groovy:57)
        at com.novoda.gradle.release.ReleasePlugin$_attachArtifacts_closure2.doCall(ReleasePlugin.groovy:47)
        at com.novoda.gradle.release.ReleasePlugin.attachArtifacts(ReleasePlugin.groovy:45)
        at com.novoda.gradle.release.ReleasePlugin$_apply_closure1.doCall(ReleasePlugin.groovy:15)
        at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
        at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
        at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
        at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
        ... 88 more

Interface UsageContext has been changed.

@StefMa StefMa added the bug label Feb 11, 2018
@jsalerno
Copy link

jsalerno commented Mar 2, 2018

Any chance of this being looked at soon ?

@StefMa
Copy link
Contributor

StefMa commented Mar 2, 2018 via email

@StefMa StefMa mentioned this issue Mar 26, 2018
@YuriDenison
Copy link

Gradle 4.6 is also affected.

@mr-archano
Copy link
Contributor

Thanks for the heads-up @YuriDenison, I will try to spend sometime this weekend to find a workaround for this issue, as we definitely don't want to stay behind in terms of Gradle versions supported.

@hanggrian
Copy link

Gradle 4.8 should also be supported, it is a requirement for upcoming Android Gradle plugin 3.3.0.

@StefMa
Copy link
Contributor

StefMa commented Jul 12, 2018

Hey guys 👋
You can try this plugin: https://github.com/StefMa/bintray-release

@afollestad
Copy link

+1 had to downgrade from Gradle 4.8 to 4.4 to get around this

@StefMa
Copy link
Contributor

StefMa commented Jul 21, 2018 via email

@YuriDenison
Copy link

Any updates on this particular plugin?

@mattmook
Copy link

Would also like to know of any updates as this stops the use of the latest android plugins. I did try the other plugin suggested but got a whole host of other issues instead.

@afollestad
Copy link

afollestad commented Aug 15, 2018

I switched to https://github.com/bintray/gradle-bintray-plugin and it works great, but it's hard to configure.

@StefMa
Copy link
Contributor

StefMa commented Aug 17, 2018

I did try the other plugin suggested but got a whole host of other issues instead.

Hey @mattmook can you create an issue at https://github.com/StefMa/bintray-release and describe the issues your faced? That would help me!

I switched to https://github.com/bintray/gradle-bintray-plugin and it works great.

These bintray-release Plugins uses these internally. But also streamline the process of set the artifacts up. So of course you could do that. But you blow up your build script files a lot!

@lx0758
Copy link

lx0758 commented Sep 27, 2018

@RurioLuca
Copy link

I'm not sure what the cause is but for some reason, when we add the plugin first before the library plugin, it seems to work.

apply plugin: 'bintray-release'
apply plugin: 'com.android.library'

if work for you visit my page :-)

@mr-archano
Copy link
Contributor

mr-archano commented Oct 20, 2018

@RurioLuca you are the second user raising the same thing, I will take a look today and try to understand what is really happening.

Could you confirm that you can actually upload the artifacts to bintray just fine? Because I would expect the POM file won't be generated correctly (ie: it will be missing the dependencies of your library, which is the whole reason why this plugin exists in the first place).

Which of your projects can we look at to reproduce what you stated above?

@mr-archano
Copy link
Contributor

BTW I can confirm that the issue is that the POM file in my tests is basically missing the dependencies node, which will make the library useless. It also won't be able to upload the aar, just the sources and the javadoc.

@RurioLuca it would be great if you could confirm the above or if you could provide more detailed info for your usecase.

@RurioLuca
Copy link

I'm out for the weekend, on monday I send you the link of my repository(i need to pusher), you'll see that reversing the dependencies you get this error.also I have another repositories that works correctly with dependencies in the correct order, I do not understand why on one I needed to reverse the plugins and on the other not

@RurioLuca
Copy link

@mr-archano

I'm having several problems upload on bintrat.
However, I have put the repository on the link:
https://github.com/RurioLuca/PermissionManager

inverting the order of the plugins you get the error in question.

apply plugin: 'bintray-release'
apply plugin: 'com.android.library'

Now however I could not upload bintrat, the library has about 7 versions published, I get an error which at the moment I have not found a solution:

Bintray-uplopad: Could not find publication: release

I have some other repositories that I updated last week and your library worked perfectly.
The only difference I can notice is that I do not include any bookshelves on the latter.
this is the link:
https://github.com/RurioLuca/QrCardParsing

I hope it helps you.
Luca

@mr-archano
Copy link
Contributor

mr-archano commented Oct 22, 2018

@RurioLuca thanks. If your project has no external dependencies apart from the Android framework then you should be fine, but that is just coincidence, as the plugin unfortunately is still broken when used on Android libraries while building with Gradle 4.5+

The problem about having correct support for android libraries is that the plugin needs to generate the right POM file in order to allow consumers to automatically resolve dependencies as needed (eg: https://bintray.com/novoda/snapshots/download_file?file_path=com%2Fnovoda%2Fdownload-manager%2FSNAPSHOT-18%2Fdownload-manager-SNAPSHOT-18.pom). The issue lives within the missing support for Android in the MavenPublishPlugin that we use underneath. There's some workaround for that (see https://github.com/bintray/gradle-bintray-plugin#maven-publications) but that solution comes with a new set of shortcomings (read first paragraph of #232 description).

I have spent some time yesterday to work out on an alternative, scalable solution (as working on #232 unfortunately highlighted other breaking changes in Gradle internal API in 4.8 and 4.10). I am waiting for GH to get back to a normal stage and have the other pending PRs reviewed before starting pushing this solution.

@mr-archano
Copy link
Contributor

Fixed in 0.9, #250

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

10 participants