0

The App is working fine unless i add @MainScope or @Singleton annotation before some "provides" method, then i am getting gradle build error

Error:Execution failed for task ':app:kaptDebugKotlin'. Internal compiler error. See log for more details

The logs contains this:

Build timestamps: Local: 1508577084874, Device: 1508577084874 2017-10-21 11:18:34,358 [ 216576] INFO - ools.idea.fd.InstantRunBuilder - BuildCause: FIRST_INSTALLATION_TO_DEVICE, BuildMode: FULL 2017-10-21 11:18:34,359 [ 216577] INFO - ild.invoker.GradleBuildInvoker - About to execute Gradle tasks: [:app:assembleDebug] 2017-10-21 11:18:34,377 [ 216595] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from C:/Program Files/Java/jdk1.8.0_144 2017-10-21 11:18:34,408 [ 216626] INFO - util.EmbeddedDistributionPaths - Looking for embedded Maven repo at 'C:\Program Files\prebuilts\tools\common\offline-m2' 2017-10-21 11:18:34,408 [ 216626] INFO - ild.invoker.GradleBuildInvoker - Build command line options: [--configure-on-demand, -Pandroid.injected.invoked.from.ide=true, -Pandroid.injected.build.api=25, -Pandroid.injected.build.density=560dpi, -Pandroid.injected.build.abi=x86, -Pandroid.injected.restrict.variant.name=debug, -Pandroid.injected.restrict.variant.project=:app, -Pandroid.optional.compilation=INSTANT_DEV,FULL_APK, -Pandroid.injected.coldswap.mode=MULTIAPK] 2017-10-21 11:18:34,420 [ 216638] INFO - xecution.GradleExecutionHelper - Passing command-line args to Gradle Tooling API: --configure-on-demand -Pandroid.injected.invoked.from.ide=true -Pandroid.injected.build.api=25 -Pandroid.injected.build.density=560dpi -Pandroid.injected.build.abi=x86 -Pandroid.injected.restrict.variant.name=debug -Pandroid.injected.restrict.variant.project=:app -Pandroid.optional.compilation=INSTANT_DEV,FULL_APK -Pandroid.injected.coldswap.mode=MULTIAPK 2017-10-21 11:18:36,975 [ 219193] INFO - roid.sdk.MessageBuildingSdkLog - com.android.ide.common.blame.Message.(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList) java.lang.NoSuchMethodException: com.android.ide.common.blame.Message.(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList) at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.getConstructor(Class.java:1825) at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:171) at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:143) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.getSimpleMessageConstructor(KotlinOutputParserHelper.kt) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createNewMessage(KotlinOutputParserHelper.kt:272) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage(KotlinOutputParserHelper.kt:250) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage$default(KotlinOutputParserHelper.kt:244) at org.jetbrains.kotlin.android.KotlinOutputParserHelperKt.parse(KotlinOutputParserHelper.kt:66) at org.jetbrains.kotlin.android.KotlinOutputParser.parse(KotlinOutputParser.java:28) at com.android.ide.common.blame.parser.ToolOutputParser.parseToolOutput(ToolOutputParser.java:86) at com.android.tools.idea.gradle.output.parser.BuildOutputParser.parseGradleOutput(BuildOutputParser.java:43) at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutor$GradleTasksExecutorImpl.lambda$collectMessages$5(GradleTasksExecutor.java:517) at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:342) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 2017-10-21 11:18:36,981 [ 219199] INFO - roid.sdk.MessageBuildingSdkLog - Exception from KotlinOutputParser 2017-10-21 11:18:36,983 [ 219201] INFO - roid.sdk.MessageBuildingSdkLog - com.android.ide.common.blame.Message.(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList) java.lang.NoSuchMethodException: com.android.ide.common.blame.Message.(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList) at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.getConstructor(Class.java:1825) at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:171) at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:143) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.getSimpleMessageConstructor(KotlinOutputParserHelper.kt) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createNewMessage(KotlinOutputParserHelper.kt:272) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage(KotlinOutputParserHelper.kt:250) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage$default(KotlinOutputParserHelper.kt:244) at org.jetbrains.kotlin.android.KotlinOutputParserHelperKt.parse(KotlinOutputParserHelper.kt:41) at org.jetbrains.kotlin.android.KotlinOutputParser.parse(KotlinOutputParser.java:28) at com.android.ide.common.blame.parser.ToolOutputParser.parseToolOutput(ToolOutputParser.java:86) at com.android.tools.idea.gradle.output.parser.BuildOutputParser.parseGradleOutput(BuildOutputParser.java:43) at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutor$GradleTasksExecutorImpl.lambda$collectMessages$5(GradleTasksExecutor.java:517) at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:342) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 2017-10-21 11:18:36,983 [ 219201] INFO - roid.sdk.MessageBuildingSdkLog - Exception from KotlinOutputParser 2017-10-21 11:18:37,092 [ 219310] INFO - pl.ProjectRootManagerComponent - project roots have changed 2017-10-21 11:18:37,108 [ 219326] INFO - a.gradle.run.MakeBeforeRunTask - Gradle invocation complete, success = false 2017-10-21 11:18:37,195 [ 219413] INFO - .diagnostic.PerformanceWatcher - Pushing properties took 8ms; general responsiveness: ok; EDT responsiveness: ok 2017-10-21 11:18:37,334 [ 219552] INFO - .diagnostic.PerformanceWatcher - Indexable file iteration took 138ms; general responsiveness: ok; EDT responsiveness: ok 2017-10-21 11:18:37,339 [ 219557] INFO - indexing.UnindexedFilesUpdater - Unindexed files update started: 8 files to update 2017-10-21 11:18:37,556 [ 219774] INFO - .diagnostic.PerformanceWatcher - Unindexed files update took 217ms; general responsiveness: ok; EDT responsiveness: ok

And here is my module:

@Module
class MainModule(val activity: Activity) {

@Provides
fun providesContext(): Context = activity.baseContext

@Provides
fun providesActivity(): Activity = activity

@Provides
@MainScope
fun providesView(activity: Activity): MainActivityView = MainActivityView(activity)

@Provides
@MainScope
fun providesPresenter(view: MainActivityView): MainPresenter = MainPresenter(view)}

MainScope:

    import javax.inject.Qualifier
import javax.inject.Scope

@Scope
annotation class MainScope

EDIT

MainComponent:

@Component(modules = arrayOf(MainModule::class), dependencies = 
arrayOf(ApplicationComponent::class))
public interface MainComponent{
    fun inject(activity: MainActivity)
}

EDIT 2: Here is whole project on github

KubenQPL
  • 113
  • 2
  • 11
  • Please read your error log carefully and include only the relevant parts in your question. If this is a Dagger error, there is a clear error message by Dagger somewhere, which you missed. – David Medenjak Oct 21 '17 at 10:00
  • Where is your component code? – EpicPandaForce Oct 21 '17 at 10:10
  • I don't know what i should be looking for in this logs and can't find any dagger debug logs. @EpicPandaForce Added. I am trying make app with this tutorial: https://www.youtube.com/watch?v=QQ8AtBGLhmM – KubenQPL Oct 21 '17 at 10:23
  • 3
    Ah it's clearly because `@AppScope` is marked as qualifier instead of scope (although it is replaced by @Singleton anyways) and that your components aren't marked with their scope (@Singleton on AppComponent and @MainScope on MainComponent) – EpicPandaForce Oct 21 '17 at 13:02

0 Answers0