Search code examples
androidkotlinbackenddagger-2gradle-kotlin-dsl

Backend Internal error, AppModule dagger2 and kotlin


I faced a problem when I am using Android studio 2021.1.1 on MAC M1! I am using

kotlin 1.6.10

Java 1.8

dagger 2.25.2

with the multi-module clean arch project!

Error :

enter image description here

Files:

setting.gradle.kts is:

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
    plugins {
        id("com.android.application") version "7.1.1"
        id("com.android.library") version "7.1.1"
        id("org.jetbrains.kotlin.android") version "1.6.10"
        id("org.jetbrains.kotlin.jvm") version "1.6.10"
        id("org.jetbrains.kotlin.kapt") version "1.6.10-M1"
        id("org.jetbrains.kotlin.plugin.parcelize") version "1.6.10-M1"
    }

    resolutionStrategy {
        eachPlugin {
            if (requested.id.id == "androidx.navigation.safeargs")
                useModule("androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5")
            if (requested.id.id == "com.google.gms.google-services")
                useModule("com.google.gms:google-services:4.3.10")

        }
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

    }
}
rootProject.name = "xxxx"
include(":app")
include(":domain")
include(":data")
include(":presentaion")
include(":uikit")
 

build.gradle.kts app module:

plugins {
    id(AppConfig.androidApplication)
    id(AppConfig.androidKotlin)
    kotlin("kapt") version "1.3.70"
    id(AppConfig.googleServicesPlugin)
}

android {
    compileSdk = AppConfig.compileSdk
    defaultConfig {
        applicationId = AppConfig.applicationId
        minSdk = AppConfig.minSdk
        targetSdk = AppConfig.targetSdk
        versionCode =
            AppConfig.versionMajor * 100 + AppConfig.versionMinor * 10 + AppConfig.versionPatch
        versionName =
            "${AppConfig.versionMajor}.${AppConfig.versionMinor}.${AppConfig.versionPatch}"
        multiDexEnabled = true
        testInstrumentationRunner = AppConfig.androidTestInstrumentation

    }

    buildTypes {
        getByName("release") {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }

    viewBinding {
        android.buildFeatures.viewBinding = true
    }

    packagingOptions {
        resources.excludes.add("META-INF/gradle/incremental.annotation.processors")
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    kapt {
        correctErrorTypes = true
        generateStubs = true
    }


    kotlinOptions {
        jvmTarget = "1.8"
    }

    configurations.forEach {
        it.exclude("com.google.guava", "listenablefuture")
        it.exclude(group = "org.jetbrains", module = "annotations")
    }

}

dependencies {
    implementation(project(mapOf("path" to ":data")))
    api(project(mapOf("path" to ":domain")))
    api(project(mapOf("path" to ":presentaion")))
    implementation(AppDependencies.daggerLibraries)
    implementation(AppDependencies.locationLibraries)
    implementation(AppDependencies.appLibraries)
    kapt(AppDependencies.compilerLibraries)
    testImplementation(AppDependencies.testLibraries)
    androidTestImplementation(AppDependencies.androidTestLibraries)
}

and another build.gradle like them.

what can I do? It took me 3 days and I read a lot of links but can not help me! I can not switch to the hilt. I should use this project with these approches. thank you


Solution

  • I found my solution:)))

    1. remove this from your build.gradle:

        configurations.forEach {  
          it.exclude("com.google.guava", "listenablefuture")              it.exclude(group = "org.jetbrains", module = "annotations")     
      

      }

    2. replace room compiler like this (kapt) if you are using kotlin and with annotaionProccor if you are using java:

    implementation("androidx.room:room-compiler:${Versions.roomVersion}

    with

    kapt("androidx.room:room-compiler:${Versions.roomVersion}")