Android gradle模块循环依赖

yhuiod9q  于 2023-01-13  发布在  Android
关注(0)|答案(2)|浏览(283)

正在连接模块应用程序,出现以下错误:

Circular dependency between the following tasks:
:app:processDebugResources
\--- :app:processDebugResources (*)

模块结构

/app
|--base
|--authfire

将此行api project(path: ':app')添加到authfire gradle后出现错误
我实际上需要的是简单地使用MainActivity类从根appauthfire启动MainActivity
:app分级机

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-kapt'

apply from: '../dependencies.gradle'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        applicationId "com.alazar.tracker"
        minSdkVersion 22
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }

    buildFeatures {
        viewBinding = true
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])

    implementation project(path: ':app:base')
    implementation project(path: ':app:authfire')

    implementation libs.kotlin
    implementation libs.core
    implementation libs.appcompat
    implementation libs.lifecycle
    implementation libs.constraint
    implementation libs.material
    testImplementation libs.testJunit
    androidTestImplementation libs.androidTestJunit
    androidTestImplementation libs.androidTestEspresso

    // dagger
    implementation libs.dagger
    kapt libs.daggerKapt

}

:app:authfire分级机

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'com.google.gms.google-services'
    id 'kotlin-kapt'
}

apply from: '../../dependencies.gradle'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }

    buildFeatures {
        viewBinding = true
    }
}

dependencies {
    //noinspection GradleDependency
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.72" // because of Firebase compatibility
}

dependencies {
    api project(path: ':app')
    api project(path: ':app:base')

    implementation libs.core
    implementation libs.appcompat
    implementation libs.material
    implementation libs.constraint
    implementation libs.lifecycle

    testImplementation libs.testJunit
    androidTestImplementation libs.androidTestJunit
    androidTestImplementation libs.androidTestEspresso

    // Firebase
    implementation platform('com.google.firebase:firebase-bom:26.0.0')
    implementation 'com.google.firebase:firebase-auth-ktx:20.0.0'
    implementation 'com.google.firebase:firebase-firestore-ktx:22.0.0'

    // RX
    implementation libs.rxKotlin

    // dagger
    implementation libs.dagger
    kapt libs.daggerKapt

}

谢谢!

xbp102n0

xbp102n01#

将两个模块使用的公共/共享代码移动到另一个模块,例如common:我们有,
common模块
module 1依赖于common
module 2依赖于common
等等..这样就不会有循环依赖问题

yrefmtwq

yrefmtwq2#

应用程序依赖于authfire
授权火取决于应用程序
这肯定会形成一个循环。
似乎在项目中:authfire您需要使用项目中的一些参数:应用程序解决方案应如下所示:
应用程序依赖于authfire(这是可以的)
应用程序正在将参数传递到项目:authfire(这是可以的)(传递参数的示例是使用广播)

相关问题