Android Studio 3.0错误。迁移本地模块的依赖配置 [英] Android Studio 3.0 Error. Migrate dependency configurations for local modules

查看:808
本文介绍了Android Studio 3.0错误。迁移本地模块的依赖配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近安装了最新的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。



gradle:


  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'c​​om。 android.support:appcompat-v7:25.3.1'
compile'c​​om.android.support:support-v4:25.3.1'
compile'c​​om.google.code.gson:gson:2.8。 0'
compile'c​​om.google.android.gms:play-services-maps:10.2.6'
compile'c​​om.google.android.gms:play-services-gcm:10.2.6'
compile'c​​om.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'c​​om.google.android.gms:play-services-maps:10.2.6'
compile'c​​om.google .android.gms:play-services-location:10.2.6'
compile'c​​om.google.android.gms:play-services-analytics:10.2.6'
comp ile'c​​om.google.android.gms:play-services-gcm:10.2.6'
compile'c​​om.google.code.gson:gson:2.8.0'
compile'c​​om.android。 support:appcompat-v7:25.3.1'
compile'c​​om.android.support:design:25.3.1'
compile'c​​om.android.support:support-v4:25.3.1'
compile'c​​om.android.support:cardview-v7:25.3.1'
compile'c​​om.android.support:gridlayout-v7:25.3.1'
compile'c​​om.android.volley: volley:1.0.0'
compile'c​​om.facebook.stetho:stetho:1.4.1'
compile'c​​om.facebook.stetho:stetho-okhttp3:1.4.1'
compile' com.android.support:percent:25.3.1'
compile'c​​om.android.support:recyclerview-v7:25.3.1'
compile'c​​om.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'c​​om.flipboard:bottomomsheet-core:1.5.0'
compile'c​​om.flipboard:bottomomsheet-commons:1.5.0'
compile'c​​om.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆