等级4.0无法找到匹配配置

我试图在新的 Android Studio 3.0金丝雀2中打开我现有的项目。我根据 指示更新了 Gradle,更改了依赖配置的名称,但是我继续得到下一个错误:

Unable to resolve dependency for ':app@productionRelease/compileClasspath':
Could not resolve project : abChat.

在另一个窗口:

Error:Could not resolve all dependencies for configuration ':bankOK:betaNewApiInnerTestRuntimeClasspath'.
> Unable to find a matching configuration in project :abChat:
- Configuration 'debugApiElements':
- Required apiLvl 'ProductFlavorAttr{name=newApi}' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=innerTest}' and found incompatible value 'BuildTypeAttr{name=debug}'.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=debug}' but wasn't required.
- Required org.gradle.api.attributes.Usage 'for runtime' and found incompatible value 'for compile'.
- Required releaseType 'ProductFlavorAttr{name=beta}' but no value provided.
- Configuration 'debugRuntimeElements':
- Required apiLvl 'ProductFlavorAttr{name=newApi}' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=innerTest}' and found incompatible value 'BuildTypeAttr{name=debug}'.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=debug}' but wasn't required.
- Required org.gradle.api.attributes.Usage 'for runtime' and found compatible value 'for runtime'.
- Required releaseType 'ProductFlavorAttr{name=beta}' but no value provided.
- Configuration 'releaseApiElements':
- Required apiLvl 'ProductFlavorAttr{name=newApi}' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=innerTest}' and found incompatible value 'BuildTypeAttr{name=release}'.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=release}' but wasn't required.
- Required org.gradle.api.attributes.Usage 'for runtime' and found incompatible value 'for compile'.
- Required releaseType 'ProductFlavorAttr{name=beta}' but no value provided.
- Configuration 'releaseRuntimeElements':
- Required apiLvl 'ProductFlavorAttr{name=newApi}' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=innerTest}' and found incompatible value 'BuildTypeAttr{name=release}'.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=release}' but wasn't required.
- Required org.gradle.api.attributes.Usage 'for runtime' and found compatible value 'for runtime'.
- Required releaseType 'ProductFlavorAttr{name=beta}' but no value provided.

下面是我们的构建类型和风格:

buildTypes {


release {
//...
}


debug {
//...
}


innerTest {
//...
}
}






flavorDimensions "releaseType", "apiLvl"
productFlavors {
prod {
dimension "releaseType"
//...
}
beta {
dimension "releaseType"
//...
}
oldApi {
dimension "apiLvl"
//...
}
newApi {
dimension "apiLvl"
//...
}
}

此外,我们还有一个名为“ abChat”的库模块,没有任何风味。 我可以尝试做什么来解决这个问题?

87759 次浏览

确保你有 所有模块中的构建配置(buildType)的精确列表(名称)

在3.0之前的设置中,我只在所有 com.android.library 模块中调试{}和发布{}。我添加了一个类似于: app 模块的配置。对我来说很好。

在你的应用里

dependencies {
debugImplementation project(':abChat')
innerTestImplementation project(':abChat')
releaseImplementation project(':abChat')
}

在你的图书馆 abChat

buildTypes {
release {}
debug{}
innerTest{}
}

这个问题已经解决了,在稳定3.0版本中一切正常。如果您仍然面临这个问题,那是因为没有备用机制。

如果你的应用程序包含一个库没有的构建类型,那么你会得到这个错误。要解决这个问题,需要为构建类型提供 matchingFallbacks。参考 Resolve build errors related to Dependency matching部分 在这份文件中

对于构建类型,请执行以下操作,如果是产品风格,请参考迁移文档。

buildTypes {
release {
//...
}
debug {
//...
}
innerTest {
//...
matchingFallbacks = ['debug', 'release']
}
}

然后简单地添加依赖项,如下所示:

dependencies {
implementation project(':abChat')
}

检查一下 apply plugin: 'com.android.library'是否在构建中。你的模块级别,我只是犯了这个愚蠢的错误。

build.gradle中删除这个旧配置清除了错误

androidExtensions {
experimental = true
}

另一个可能的解决方案是创建一个 build.gradle 模块项目文件。集成一个。在您现有的项目 aar 文件,按照下面提到的方法。

  1. 在你的项目中创建一个文件夹,将它命名为 sampleAarIntegration,在你的“ app”文件夹可用的同一位置。

  2. 将 sampleAar.aar 文件粘贴到 sampleAarIntegration 文件夹中

  3. 在 sampleAarIntegration 文件夹中创建 gradle 文件,命名为“ build.gradle”。 在 sampleAarIntegration: build.gradle 文件中粘贴以下代码

    configurations.maybeCreate("default")
    artifacts.add("default", file('sampleAar.aar'))
    
  4. 在应用程序中添加以下代码行: build.gradle

    implementation project(':sampleAarIntegration')
    
  5. 将下面的代码添加到 setings.gradle 文件中

    include ':app', ':seedFab'
    
  6. 您可以看到您的模块已成功集成到您的主项目。

以管理员身份运行您的 Android Studio 这对我很有效. . 这会很容易解决你的问题

犯了同样的错误,浪费了我的时间。这是解决的方法。 注意这条线:

Could not resolve project : abChat.

AbChat 这里是项目的名称,您的应用程序是从保存在您的应用程序库中导入软件包或从网络资源下载。所以对我来说,这是另一个项目:

could not resolve project MPChartLib

如果你的应用程序使用了已经下载和保存的数据,在你的分级文件中会是这样的:

implementation project(':MPChartLib') // in this case the project name is MPChartlib, for your app it will be something else

如果你的应用程序设计成在构建期间下载和使用项目数据,它将是这样的:

implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2' // // in this case the project name is MPChartlib, for your app it will be something else

解决这个问题的方法,

  1. 选项一-进入 VS Code 右键单击父文件夹并选择 Find in Folder,搜索项目名称并查看它是如何导入的并检查,确保它仍然工作-您的项目库中有该项目或提供的链接仍然工作。同样的方式搜索选项可能在 Android 工作室以及-双击移位按钮,并输入搜索字找到它在项目文件的任何地方。

  2. 选项二-如果您熟悉项目结构检查构建级别文件-检查它是如何导入的,并确保提到的项目仍然可用的项目库或有工作链接在构建过程中下载。

对于7.1.x 及以上版本, 如果您已经尝试匹配 Fallback 和其他提到的解决方案,但问题仍然存在,请尝试降级到7.0.4