Unable to resolve dependency for xxx, Could not resolve project

我们为了在不同的环境使用不同的配置,所以会在gradle中添加buildtypes来区分环境,并且在下面进行不同的配置,比如:

buildTypes {
    dev{
        signingConfig signingConfigs.DevConfig
        buildConfigField("String", "HOST", "\"http://120.0.0.1:8000/\"")
    }
    debug {
        signingConfig signingConfigs.DebugConfig
        buildConfigField("String", "HOST", "\"http://xxxx.xxx.com/\"")
    }
    release {
        minifyEnabled false
        signingConfig signingConfigs.ReleaseConfig
        buildConfigField("String", "HOST", "\"http://xxxx.xxx.com/\"")
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

但是当我们新增一个buildtypes的时候,刷新gradle会发现出错:

Error:Unable to resolve dependency for ‘xxxx’, Could not resolve project :xxxx

这是因为主项目依赖来一个子项目implementation project(":xxx"),而这个子项目中没有这个buildtypes。

解决方法有几种:

  • gradle降级
  • 子项目中添加该buildtypes,内容可以为空
  • 添加matchingFallbacks

这里前两种都不完美,第三种是最推荐的方法,修改后如下:

buildTypes {
    dev{
        signingConfig signingConfigs.MyConfig
        buildConfigField("String", "PROFILE_HOST", "\"http://114.215.83.151:10008/\"")
        matchingFallbacks = ["debug"]
    }
    debug {
        signingConfig signingConfigs.MyConfig
        buildConfigField("String", "PROFILE_HOST", "\"http://xxxx.xxx.com/\"")
    }
    release {
        minifyEnabled false
        signingConfig signingConfigs.MyConfig
        buildConfigField("String", "PROFILE_HOST", "\"http://xxxx.xxx.com/\"")
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
关注公众号:BennuCTech,发送“暗时间”获取程序员必读经典书籍《暗时间》电子版。

猜你喜欢

转载自blog.csdn.net/chzphoenix/article/details/122696618