Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[prettytime-nlp] Android checkReleaseDuplicateClasses error in 5.0.7.Final #268

Closed
scribetw opened this issue Feb 19, 2024 · 6 comments
Closed

Comments

@scribetw
Copy link

Hi, I'm using prettytime-nlp in an Android app. But I encounter a compiling errors:

Error log
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkReleaseDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class org.slf4j.ILoggerFactory found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.IMarkerFactory found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.Logger found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.LoggerFactory found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.MDC found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.MDC$1 found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.MDC$MDCCloseable found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.Marker found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.MarkerFactory found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.BasicMDCAdapter found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.BasicMarker found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.BasicMarkerFactory found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.FormattingTuple found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.MarkerIgnoringBase found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.MessageFormatter found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.NOPLogger found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.NOPLoggerFactory found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.NOPMDCAdapter found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.NamedLoggerBase found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.SubstituteLogger found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.SubstituteLoggerFactory found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.Util found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.Util$1 found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.helpers.Util$ClassContextSecurityManager found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.spi.LocationAwareLogger found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.spi.LoggerFactoryBinder found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.spi.MDCAdapter found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)
     Duplicate class org.slf4j.spi.MarkerFactoryBinder found in modules prettytime-nlp-5.0.7.Final.jar -> jetified-prettytime-nlp-5.0.7.Final (org.ocpsoft.prettytime:prettytime-nlp:5.0.7.Final) and slf4j-api-2.0.12.jar -> jetified-slf4j-api-2.0.12 (org.slf4j:slf4j-api:2.0.12)

     Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 39s
Running Gradle task 'assembleRelease'...                           40.3s
Gradle task assembleRelease failed with exit code 1

Environment

  • OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-122.04)
  • Gradle 8.6
  • AGP 8.2.2
  • app/build.gradle dependencies
dependencies {
  // https://mvnrepository.com/artifact/org.ocpsoft.prettytime/prettytime-nlp
  implementation group: 'org.ocpsoft.prettytime', name: 'prettytime-nlp', version: '5.0.7.Final'

  // https://mvnrepository.com/artifact/org.slf4j/slf4j-api
  implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.12'
}

Possible Cause

I found there is a duplicated folder org/slf4j in prettytime-nlp-5.0.7.Final.jar.

Consider adding org.slf4j:slf4j-api as a dependency of prettytime-nlp.

Workaround

Use version 4.0.6.Final instead.

@diogommsilva
Copy link

I am seeing a similar problem with the same cause. Are there plans to patch this?

@lincolnthree
Copy link
Member

lincolnthree commented Mar 4, 2024

Hi friends. Thanks for the issue and apologies for the delay. It's possible that another workaround could be to remove the org.slf4j:slf4j-api from your dependencies configuration.

That said, I don't believe there are any functional differences in NLP between version 4.0.6.Final and version 5.0.7.Final, so your workaround should be fine.

However, workarounds still shouldn't be necessary. I'll need to look at what changed in the shade configuration between these versions, but in the mean time, I would be happy to review and accept a pull request for this issue!

@lincolnthree
Copy link
Member

Released 5.0.9.Final -- please let me know if the problem is not resolved -- Thanks @tesnick for the PR!

@tesnick
Copy link

tesnick commented Jul 1, 2024

Released 5.0.9.Final -- please let me know if the problem is not resolved -- Thanks @tesnick for the PR!

I can't see yet release 5.0.9.Final, is this ongoing? Thx

@lincolnthree
Copy link
Member

@tesnick It appears in MVN central for me. Try clearing your mvn caches if not?
https://central.sonatype.com/artifact/org.ocpsoft.prettytime/prettytime-nlp/versions

@tesnick
Copy link

tesnick commented Jul 3, 2024

yes, I was not checking it properly. Thanks a lot!

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

No branches or pull requests

4 participants