J'essaie d'ouvrir mon projet existant dans le nouveau canary 2 d'Android Studio 3.0. J'ai mis à jour Gradle conformément à instructions , j'ai modifié les noms des configurations de dépendance, mais l'erreur suivante persiste:
Unable to resolve dependency for ':app@productionRelease/compileClasspath':
Could not resolve project : abChat.
Et dans une autre fenêtre:
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.
Voici nos types de construction et leurs saveurs:
buildTypes {
release {
//...
}
debug {
//...
}
innerTest {
//...
}
}
flavorDimensions "releaseType", "apiLvl"
productFlavors {
prod {
dimension "releaseType"
//...
}
beta {
dimension "releaseType"
//...
}
oldApi {
dimension "apiLvl"
//...
}
newApi {
dimension "apiLvl"
//...
}
}
De plus, nous avons un module de bibliothèque nommé "abChat" sans aucune saveur . Que puis-je essayer de faire pour résoudre le problème?
Ce problème est résolu et tout fonctionne correctement dans la version Stable 3.0. Si vous faites toujours face à ce problème, c'est qu'il n'y a pas de mécanisme de secours.
Si votre application inclut un type de construction différent de celui de la bibliothèque, vous obtiendrez cette erreur. Pour résoudre ce problème, vous devez fournir matchingFallbacks
à votre type de construction. Reportez-vous à la section Resolve build errors related to Dependency matching
de cette documentation
Dans le cas des types de construction, procédez comme suit et, dans le cas contraire, reportez-vous à la documentation relative à la migration.
buildTypes {
release {
//...
}
debug {
//...
}
innerTest {
//...
matchingFallbacks = ['debug', 'release']
}
}
et ajoutez simplement vos dépendances comme ci-dessous:
dependencies {
implementation project(':abChat')
}
dans votre application
dependencies {
debugImplementation project(':abChat')
innerTestImplementation project(':abChat')
releaseImplementation project(':abChat')
}
dans votre libary abChat
buildTypes {
release {}
debug{}
innerTest{}
}
Assurez-vous que vous avez la liste exacte (noms) de configurations de construction (buildTypes) dans tous vos modules.
Dans ma configuration antérieure à la version 3.0, je n'avais que les commandes debug {} et release {} dans tous mes modules com.Android.library. J'ai ajouté une configuration supplémentaire similaire à celle de: module d'application. Cela me convient parfaitement.
Cela a travaillé après une longue recherche.
Remplacer:
implementation project(':abChat')
À:
implementation project(path:':abChat', configuration: 'default')
Vérifiez que c'est apply plugin: 'com.Android.library'
dans build.gradle de votre module, je viens de faire cette erreur stupide.