Android Studio 3.0错误。迁移本地模块的依赖配置 [英] Android Studio 3.0 Error. Migrate dependency configurations for local modules
问题描述
我最近安装了最新的Canary版本的Android Studio,它目前使用的是Android Gradle插件3.0.0-alpha4。
我现在得到一个错误:
错误:无法解决:无法解析项目:MyLib。
所需:
project:app
我读过:迁移本地模块的依赖配置
依赖项
{
//这是(路径:':foo',配置:'debug')
// releaseCompile项目(路径: ':foo',配置:'release')
//相反,只需使用以下内容来利用
// variant-aware依赖关系解析。您可以在关于
//新依赖配置的部分中了解更多有关
//'实现'配置的信息。
实现项目(':foo')
//然而,当
//针对外部依赖关系时,您可以继续使用特定于变体的配置。以下行将'app-magic'
//作为依赖项添加到您的模块的调试版本。
debugImplementation'com.example.android:app-magic:12.3'
}
我改变了:
releaseCompile项目(路径:':MyLib' ,配置:'appReleaseApp')
debugCompile项目(路径:':MyLib',配置:'appDebug')
到:
执行项目(':MyLib')
但我仍然有这个错误:错误:无法解决:无法解析项目:MyLib。
apply plugin:'com。 android.library'
$ b $ android $ {
publishNonDefault true
compileSdkVersion 25
buildToolsVersion25.0.3
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
}
buildTypes {
debug {
...
}
releaseApp {
...
}
releaseSdk {
...'
}
}
flavorDimensionsdefault
productFlavors {
flavor1 {
...
flavor2 {
...
}
flavor3 {
...
}
依赖关系{
编译fileTree(包括:''.jar'],dir:'libs')
compile'com。 android.support:appcompat-v7:25.3.1'
compile'com.android.support:support-v4:25.3.1'
compile'com.google.code.gson:gson:2.8。 0'
compile'com.google.android.gms:play-services-maps:10.2.6'
compile'com.google.android.gms:play-services-gcm:10.2.6'
compile'com.google.android.gms:play-services-location:10.2.6'
}
apply plugin:'maven'
uploadArchives {
存储库{
mavenDeployer {
存储库(网址:mavenLoca l()。url)
}
}
}
app gradle:
apply plugin:'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion25.0.3
defaultConfig {
vectorDrawables.useSupportLibrary = true
testInstrumentationRunnerandroid.support.test.runner.AndroidJUnitRunner
minSdkVersion 19
targetSdkVersion 25
versionCode 12
versionName5.0.2
}
buildTypes {
release {
...
}
debug {
...
}
}
flavorDimensionsdefault
productFlavors {
flavor1 {
...
}
flavor2 {
...
}
}
testOptions {
unitTests {
all {
jvmArgs'-noverify'
systemProperty'robolectric.logging.enable',true
}
}
}
}
repositories {
flatDir {
dirs'libs'
}
}
依赖关系{
// releaseCompile项目(路径:':MyLib',配置:'appRelease' )
// debugCompile项目(路径:':MyLib',配置:'appDebug')
实现项目(':MyLib')
编译fileTree(dir:'libs ',包括:['* .jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',{
exclude group:'com.android .support',module:'support-annotations'
})
compile'com.google.android.gms:play-services-maps:10.2.6'
compile'com.google .android.gms:play-services-location:10.2.6'
compile'com.google.android.gms:play-services-analytics:10.2.6'
comp ile'com.google.android.gms:play-services-gcm:10.2.6'
compile'com.google.code.gson:gson:2.8.0'
compile'com.android。 support:appcompat-v7:25.3.1'
compile'com.android.support:design:25.3.1'
compile'com.android.support:support-v4:25.3.1'
compile'com.android.support:cardview-v7:25.3.1'
compile'com.android.support:gridlayout-v7:25.3.1'
compile'com.android.volley: volley:1.0.0'
compile'com.facebook.stetho:stetho:1.4.1'
compile'com.facebook.stetho:stetho-okhttp3:1.4.1'
compile' com.android.support:percent:25.3.1'
compile'com.android.support:recyclerview-v7:25.3.1'
compile'com.squareup.picasso:picasso:2.5.2'
testCompile'junit:junit:4.12'
testCompile'org.mockito:mockito-core:2.1.0'
testCompile'org.robolectric:robolectric:3.1.4'
testCompile'org.assertj:assertj-core:1.7.1'
compile'com.flipboard:bottomomsheet-core:1.5.0'
compile'com.flipboard:bottomomsheet-commons:1.5.0'
compile'com.android.support。 constraint:layout-1.0.1'
}
apply plugin:'com.google.gms.google-services'
请帮助解决方案
解释方案
它:解决与依赖项匹配相关的构建错误
构建错误的原因:
您的应用包含构建类型,即例如,您的应用程序包含一个暂存构建类型,但是一个
依赖关系只包含一个debug和release构建类型。
请注意,当库依赖项包含建立您的应用程序没有的
类型。这是因为插件根本不会从
请求构建依赖项的类型。
分辨率
使用matchingFallbacks为给定的构建类型指定替代匹配,如下所示:
//在应用程序的build.gradle文件中。
android {
buildTypes {
debug {}
release {}
staging {
//指定一个有序的回退构建类型列表,
//插件应该尝试在依赖项不包含
//暂存构建类型时使用。您可以指定与
//一样多的回退,并且该插件选择依赖项中可用的第一个构建类型,即
//。
matchingFallbacks = ['debug','qa','release']
}
}
}
I recently installed the latest Canary build of Android Studio which is currently using the Android Gradle plugin 3.0.0-alpha4 .
I now get a error:
Error:Failed to resolve: Could not resolve project :MyLib.
Required by:
project :app
I has read: Migrate dependency configurations for local modules
dependencies { // This is the old method and no longer works for local // library modules: // debugCompile project(path: ':foo', configuration: 'debug') // releaseCompile project(path: ':foo', configuration: 'release') // Instead, simply use the following to take advantage of // variant-aware dependency resolution. You can learn more about // the 'implementation' configuration in the section about // new dependency configurations. implementation project(':foo') // You can, however, keep using variant-specific configurations when // targeting external dependencies. The following line adds 'app-magic' // as a dependency to only the 'debug' version of your module. debugImplementation 'com.example.android:app-magic:12.3' }
I changed:
releaseCompile project(path: ':MyLib', configuration: 'appReleaseApp')
debugCompile project(path: ':MyLib', configuration: 'appDebug')
to:
implementation project(':MyLib')
but i still have this error: Error:Failed to resolve: Could not resolve project :MyLib.
lib gradle:
apply plugin: 'com.android.library'
android {
publishNonDefault true
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
}
buildTypes {
debug {
...
}
releaseApp {
...
}
releaseSdk {
...'
}
}
flavorDimensions "default"
productFlavors {
flavor1{
...
flavor2{
...
}
flavor3{
...
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.google.code.gson:gson:2.8.0'
compile 'com.google.android.gms:play-services-maps:10.2.6'
compile 'com.google.android.gms:play-services-gcm:10.2.6'
compile 'com.google.android.gms:play-services-location:10.2.6'
}
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: mavenLocal().url)
}
}
}
app gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
minSdkVersion 19
targetSdkVersion 25
versionCode 12
versionName "5.0.2"
}
buildTypes {
release {
...
}
debug {
...
}
}
flavorDimensions "default"
productFlavors {
flavor1 {
...
}
flavor2 {
...
}
}
testOptions {
unitTests {
all {
jvmArgs '-noverify'
systemProperty 'robolectric.logging.enable', true
}
}
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
// releaseCompile project(path: ':MyLib', configuration: 'appRelease')
// debugCompile project(path: ':MyLib', configuration: 'appDebug')
implementation project(':MyLib')
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.google.android.gms:play-services-maps:10.2.6'
compile 'com.google.android.gms:play-services-location:10.2.6'
compile 'com.google.android.gms:play-services-analytics:10.2.6'
compile 'com.google.android.gms:play-services-gcm:10.2.6'
compile 'com.google.code.gson:gson:2.8.0'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:gridlayout-v7:25.3.1'
compile 'com.android.volley:volley:1.0.0'
compile 'com.facebook.stetho:stetho:1.4.1'
compile 'com.facebook.stetho:stetho-okhttp3:1.4.1'
compile 'com.android.support:percent:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.squareup.picasso:picasso:2.5.2'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.1.0'
testCompile 'org.robolectric:robolectric:3.1.4'
testCompile 'org.assertj:assertj-core:1.7.1'
compile 'com.flipboard:bottomsheet-core:1.5.0'
compile 'com.flipboard:bottomsheet-commons:1.5.0'
compile 'com.android.support.constraint:constraint-layout:1.0.1'
}
apply plugin: 'com.google.gms.google-services'
Please help
Google added more instruction how to solve it: Resolve build errors related to dependency matching
Cause of build error:
Your app includes a build type that a library dependency does not.
For example, your app includes a "staging" build type, but a dependency includes only a "debug" and "release" build type.
Note that there is no issue when a library dependency includes a build type that your app does not. That's because the plugin simply never requests that build type from the dependency.
Resolution
Use matchingFallbacks to specify alternative matches for a given build type, as shown below:
// In the app's build.gradle file.
android {
buildTypes {
debug {}
release {}
staging {
// Specifies a sorted list of fallback build types that the
// plugin should try to use when a dependency does not include a
// "staging" build type. You may specify as many fallbacks as you
// like, and the plugin selects the first build type that's
// available in the dependency.
matchingFallbacks = ['debug', 'qa', 'release']
}
}
}
这篇关于Android Studio 3.0错误。迁移本地模块的依赖配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!