Madrapps / dagger-plugin

Plugin that supports easy usage of Dagger 2 library in IntelliJ iDEA or Android Studio
Apache License 2.0
30 stars 9 forks source link

IntelliJ Ultimate 2020.3.2 java.lang.NoSuchMethodError #30

Closed sunyang713 closed 3 years ago

sunyang713 commented 3 years ago

IntelliJ Ultimate 2020.3.2 Kotlin 203-1.4.30-release-IJ7148.5

I get an error when dagger tries to analyze my code. Please let me know what other information I could provide!

java.lang.NoSuchMethodError: 'boolean org.jetbrains.kotlin.asJava.classes.UltraLightAnnotationsKt.isPrivateOrParameterInPrivateMethod(com.intellij.psi.PsiModifierListOwner)'
    at com.madrapps.dagger.validation.ProblemKt.validatePrivateMethod(Problem.kt:27)
    at com.madrapps.dagger.validation.ProvidesProblem.validateMethod(ProvidesProblem.kt:32)
    at com.madrapps.dagger.validation.ProvidesProblem.isError(ProvidesProblem.kt:19)
    at com.madrapps.dagger.validation.ValidationAnnotator.annotate(ValidationAnnotator.kt:25)
    at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:136)
    at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:116)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:336)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$collectHighlights$5(GeneralHighlightingPass.java:269)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:295)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$6(GeneralHighlightingPass.java:298)
    at com.intellij.codeInsight.daemon.impl.analysis.HighlightVisitorImpl.lambda$analyze$1(HighlightVisitorImpl.java:211)
    at com.intellij.codeInsight.daemon.impl.analysis.RefCountHolder.analyze(RefCountHolder.java:370)
    at com.intellij.codeInsight.daemon.impl.analysis.HighlightVisitorImpl.analyze(HighlightVisitorImpl.java:210)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:298)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$6(GeneralHighlightingPass.java:298)
    at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:96)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:298)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:266)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:212)
    at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:84)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:56)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:400)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1137)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:393)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:392)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:368)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:172)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:183)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:366)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:188)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
thsaravana commented 3 years ago

It seems that 2020.3 unlike 2020.2 uses JDK 11. Had to make some modifications to support JDK 11.

RCA: PsiModifierListOwner.isPrivateOrParameterInPrivateMethod() was removed from ultraLightAnnotations.kt in the latest version of Kotlin.

thsaravana commented 3 years ago

@sunyang713 Can you test with this? Just download the zip and drag drop it in the IDE to install. Please let us know if the issue is resolved.

sunyang713 commented 3 years ago

Thanks for the quick turn-around! Just did a test and I'm not getting the error anymore, so I think the fixed worked. I'm not seeing my dependencies show up, but I think that might something wrong on my end.

thsaravana commented 3 years ago

Thanks for the quick turn-around! Just did a test and I'm not getting the error anymore, so I think the fixed worked. I'm not seeing my dependencies show up, but I think that might something wrong on my end.

Awesome. Will push this fix in the next update. If your project is building successfully on Dagger 2.27 or above (without Hilt) then the dependency graph should show up in the Toolbar. If not, please raise a new issue.