Android studio 3.0:无法解析依赖关系:app @ dexOptions / compileClasspath':无法解析项目:animators

时间:2017-10-26 08:44:13

标签: android-studio android-gradle android-studio-3.0

我迁移到Android studio 3.0。因此,项目无法编译名为":animator"它显示我这个错误:

 Error:Unable to resolve dependency for
 ':app@dexOptions/compileClasspath': Could not resolve project
 :animators. <a
 href="openFile:/home/mobilepowered/MobilePowered/MyInnovalee/trunk17-10-2017/app/build.gradle">Open
 File</a><br><a href="Unable to resolve dependency for
 &#39;:app@dexOptions/compileClasspath&#39;: Could not resolve project
 :animators.">Show Details</a>

并显示详细信息提供此日志:

 Unable to resolve dependency for ':app@dexOptions/compileClasspath':
 Could not resolve project :animators.

 Could not resolve project :animators. Required by:
     project :app
 Unable to find a matching configuration of project :animators:
      - Configuration 'debugApiElements':
          - Required com.android.build.api.attributes.BuildTypeAttr 'dexOptions' and found incompatible value 'debug'.
          - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and
 found compatible value 'Aar'.
          - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but
 wasn't required.
          - Required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
      - Configuration 'debugRuntimeElements':
          - Required com.android.build.api.attributes.BuildTypeAttr 'dexOptions' and found incompatible value 'debug'.
          - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and
 found compatible value 'Aar'.
          - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but
 wasn't required.
          - Required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.
      - Configuration 'releaseApiElements':
          - Required com.android.build.api.attributes.BuildTypeAttr 'dexOptions' and found incompatible value 'release'.
          - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and
 found compatible value 'Aar'.
          - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but
 wasn't required.
          - Required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
      - Configuration 'releaseRuntimeElements':
          - Required com.android.build.api.attributes.BuildTypeAttr 'dexOptions' and found incompatible value 'release'.
          - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and
 found compatible value 'Aar'.
          - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but
 wasn't required.
          - Required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.

34 个答案:

答案 0 :(得分:117)

使用Android Studio 2.3(AS),该项目工作正常,我可以运行该应用程序。将AS更新到Android Studio 3.0后。对于库和构建类型,我也得到如下错误。

Unable to resolve dependency for ':app@dexOptions/compileClasspath': Could not resolve project : library_Name.

Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project : library_Name.

简单地解决问题。

什么

buildTypes{
          debug{ ... }
          release{ ... }
    }

您拥有(app)build.gradle 文件,您必须包含与

相同名称的所有buildTypes{ }
buildTypes{
      debug{ ... }
      release{ ... }
}

项目中包含的所有库/模块的build.gradle个文件

清理并重建项目,问题将得到解决。

仍未解决问题,请将gradle-wrapper.properties更新为

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

答案 1 :(得分:98)

official migration guide中所述,在以下情况下会遇到此错误:

  

您的应用包含库依赖项不

的构建类型
android {
  buildTypes {
      release {
          ...
      }
      dexOptions {
          ...
        // release & debug is in project animators
        matchingFallbacks = ['release', 'debug']
      }
      debug {
          ...
      }
    }
}

设置匹配配置回退显然是解决此问题的正确方法。

答案 2 :(得分:91)

确保您在项目中

  1. 点击文件&gt;打开首选项设置(在Mac上, Android Studio &gt; 偏好设置)。
  2. 在左侧窗格中,点击构建,执行,部署&gt;&gt;的摇篮即可。
  3. 取消选中 / 停用 Offline work复选框。
  4. 点击应用确定

答案 3 :(得分:49)

我在这个问题上花了很多时间,以上解决方案都不适合我。在应用程序和库项目中,构建类型的名称和数量也完全相同。

我唯一犯的错误是-在图书馆项目的build.gradle中,我正在使用

  

应用插件:“ com.android.application”

该行应为-

  

应用插件:“ com.android.library”

进行此更改后,此错误已解决。

答案 4 :(得分:49)

修改所有

compile project(':library:yourproject')

implementation project(path: ':library:yourproject', configuration:'default')

在你的app build.gradle中。请注意带有配置的行。

答案 5 :(得分:17)

我尝试了从取消离线工作 matchingFallbacks 的所有操作。但没有任何效果。

然后,根据 app.gradle的相关性

代替

  

实施项目(':lib-name')

我用过

  

实施项目(路径:“:lib-name”,配置:“默认”)

     

例如:implementation project(path:':myService', configuration: 'default')

它就像一个魅力。 :)

我要在 service 中添加依赖模块,并且没有将库作为 AOSP项目的一部分。

以防万一,它可以帮助某人。

答案 6 :(得分:15)

解决方案:

下载最终版本的Gradle

http://services.gradle.org/distributions/

gradle-4.x-rc-1-all.zip.sha256 09-Jan-2018 01:15 +0000 64.00B

解压缩发行版

转到Android Studio - &gt;档案 - &gt;设置 - &gt; Gradle - &gt;使用本地gradle分发 搜索文件并确定

在gradle中:app写这个,实现(路径:':animators',配置:'默认')

corpus2

}

答案 7 :(得分:7)

以下是我解决问题的方法:

而不是

compile project(':library_name')
compile project(':library_name')

在app gradle我用过

implementation project(':library_name')
implementation project(':library_name')

在我的构建类型中,例如

demoTest {
 .........
}

我添加了这一行

demoTest {
   matchingFallbacks = ['debug', 'release']
}

答案 8 :(得分:6)

我遇到了同样的问题,并通过添加&#39; mavenCentral()&#39;解决了这个问题。 to build.gradle(Project)

allprojects {
    repositories {
        ...
        mavenCentral()
    }
}

答案 9 :(得分:5)

即便如此,我也遇到了同样的问题。

我已经通过参考以上内容解决了这个问题 使用新g radle-4.1的解决方案2:

我做了以下gradle更改。 似乎通过maven下载资源亚马逊帮助我解决了这个问题,appcompat库存在问题。检查并确保在系统中下载了appcompat兼容的支持库。我的感觉,它只是简单的资源没有通过maven下载,导致编译错误问题。确保在本地驱动器中找到资源以解决问题。

刚刚玩过

  1. Maven Amazon网址
  2. repositories {
        maven {
            url "https://s3.amazonaws.com/repo.commonsware.com"
        }
        jcenter()
    }
    
    1. 在驱动器中下载的兼容支持库,并在gradle中引用兼容的库。
    2. dependencies {
          implementation fileTree(dir: 'libs', include: \['*.jar'\])
          implementation 'com.android.support:appcompat-v7:26.0.0-alpha1'
          implementation  'com.android.support:support-v4:26.0.0-alpha1'
          implementation 'com.android.support.constraint:constraint-layout:1.0.2'
      
      }
      

      完整档案

              apply plugin: 'com.android.application'
      
              repositories {
                  maven {
                      url "https://s3.amazonaws.com/repo.commonsware.com"
                  }
                  jcenter()
              }
      
              android {
                  compileSdkVersion 26
                  defaultConfig {
                      applicationId "com.cognizant.interviewquestions.cognizantiqpractice2"
                      minSdkVersion 18
                      targetSdkVersion 26
                      versionCode 1
                      versionName "1.0"
      
                      javaCompileOptions {
                          annotationProcessorOptions {
                              includeCompileClasspath false
                          }
                      }
      
                      dexOptions {
                          javaMaxHeapSize "4g"
                          preDexLibraries = false
                      }
                  }
      
                  buildTypes {
                      release {
                          minifyEnabled false
                          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                      }
                  }
              }
      
              dependencies {
                  implementation fileTree(dir: 'libs', include: \['*.jar'\])
                  implementation 'com.android.support:appcompat-v7:26.0.0-alpha1'
                  implementation  'com.android.support:support-v4:26.0.0-alpha1'
                  implementation 'com.android.support.constraint:constraint-layout:1.0.2'
      
              }
      ---------------------------------------------------------------------------
      

      enter image description here

      enter image description here

答案 10 :(得分:4)

我找到了两种解决方案:

  1. 旧g radle-3.3的解决方案:

    作为使用android studio 3.0运行项目的第一个和临时解决方案,我维护了我以前的Android Studio 2.3的旧配置

    distributionUrl = https://services.gradle.org/distributions/g radle-3.3-all.zip,compileSdkVersion 25 **和** buildToolsVersion&#34; 25.0.3&#34;和classpath&#39; com.android.tools.build:gradle:2.3.3

  2. 使用新g radle-4.1的解决方案:

    要使用 gradle 4.1 的新功能和 classpath com.android.tools.build:gradle:3.0.0' ,我按照此链接https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html。那些,这些是我的实现:

  3. 在文件gradle-wrapper.properties中:

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
    

    在项目的文件build.gradle中:

    buildscript {
        repositories {
            jcenter()
            google()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.0'
            //classpath 'me.tatarka:gradle-retrolambda:3.3.1' remove this line
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    在app的文件build.gradle中:

    apply plugin: 'com.android.application'
    //apply plugin: 'me.tatarka.retrolambda' remove this line
    
    repositories {
        maven {
            url "https://s3.amazonaws.com/repo.commonsware.com"
        }
        jcenter()
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
    
    android {
        compileSdkVersion 26
        buildToolsVersion "26.0.2"
        defaultConfig {
            applicationId "com.imennmn.myprojectid"
            minSdkVersion 21
            targetSdkVersion 26
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            /**
             * Enabling multidex support.
             */
            multiDexEnabled true
            missingDimensionStrategy 'minApi' , 'minApi24'
    
            javaCompileOptions {
                annotationProcessorOptions {
                    includeCompileClasspath true
                }
            }
    
            dexOptions {
                javaMaxHeapSize "4g"
                preDexLibraries = false
            }
    
        }
        buildTypes {
            release {
                shrinkResources false
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    
        lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }
    
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    
        configurations.all {
            resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
        }
    
        /**
         * Solve the problem when using multiple free source libs
         * NOTICE or LICENSE files cause duplicates
         */
        packagingOptions {
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/DEPENDENCIES.txt'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/DEPENDENCIES'
            //exclude duplicate butterknife and parceler libs
            exclude 'META-INF/services/javax.annotation.processing.Processor'
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/rxjava.properties'
    
        }
    
    
    }
    
    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        implementation files('libs/motwin-android-sdk-3.2.0-RELEASE-TLS.jar')
        implementation files('libs/notifmanager-android-lib-3.1.0-RELEASE.jar')
        implementation files('libs/commons-lang-2.4.jar')
        androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        implementation 'com.android.support:appcompat-v7:26.0.2'
        implementation 'com.android.support:support-v4:26.0.2'
        implementation 'com.android.support:design:26.0.2'
        implementation 'com.android.support:multidex:1.0.2'
        api 'com.jakewharton:butterknife:7.0.1'
        implementation 'de.hdodenhof:circleimageview:2.1.0'
        implementation 'com.android.support:percent:26.0.2'
        implementation 'com.google.android.gms:play-services-maps:11.4.2'
        implementation 'com.github.bumptech.glide:glide:3.7.0'
        implementation 'com.google.code.gson:gson:2.8.1'
        testImplementation 'junit:junit:4.12'
        implementation 'com.facebook.rebound:rebound:0.3.8'
        implementation 'com.google.android.gms:play-services-gcm:11.4.2'
        implementation 'io.reactivex.rxjava2:rxjava:2.1.1'
        implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    
        implementation project(':animators')
    
        // Retrofit2 & XmlConverter
        implementation 'com.squareup.retrofit2:retrofit:2.3.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
        implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    
        implementation('com.squareup.retrofit2:converter-simplexml:2.3.0') {
            exclude group: 'xpp3', module: 'xpp3'
            exclude group: 'stax', module: 'stax-api'
            exclude group: 'stax', module: 'stax'
        }
    
        implementation 'com.squareup.okhttp3:okhttp:3.4.1'
        implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    
        //Library to reports crash
        implementation('ch.acra:acra:4.5.0') {
            exclude group: 'org.json'
        }
    
        implementation 'com.github.kenglxn.QRGen:android:2.3.0'
    
    }
    

    在库动画师的build.gradle中,我将targetSdkVersion升级为26:

    apply plugin: 'com.android.library'
    
    android {
      compileSdkVersion 26
      buildToolsVersion '26.0.2'
    
      defaultConfig {
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
      }
    }
    
    dependencies {
      implementation "com.android.support:support-compat:26.0.2"
      implementation "com.android.support:support-core-ui:26.0.2"
      implementation "com.android.support:recyclerview-v7:26.0.2"
    }
    

答案 11 :(得分:3)

请确保您已在Gradle设置中禁用了“离线工作” (设置->构建,执行,部署->构建工具-> Gradle)。

我犯了这个错误。我遵循了有关加快Gradle构建速度的指南,并启用了“离线工作”选项。如果启用了该功能,Gradle将无法下载任何新的依赖项,因此将导致“无法解决依赖项”错误。

答案 12 :(得分:3)

您只需要重置app.gradle文件中的依赖项 像旧的一样

androidTestImplementation 'com.android.support.test:runner:0.5'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'

到新的

androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

答案 13 :(得分:3)

在gradle中更改此代码:

  compile project(':yourLibrary')

   implementation project(path: ': yourLibrary', configuration:'default')

答案 14 :(得分:2)

我遇到了同样的问题并且已经解决了。

由于我的情况,我猜您的app项目的build.gradle文件包含以下代码段:

android {
    ...
    buildTypes {
        debug {...}
        release {...}
        dexOptions {...}
    }
}

但实际上,dexOptions不是构建类型,您应该将dexOptions部分移出buildTypes,如下所示:

android {
    ...
    dexOptions {
        ...
    }

    buildTypes {
        debug {...}
        release {...}
    }
}

希望可以帮助别人。

答案 15 :(得分:1)

我尝试了上面给出的所有解决方案,但没有一个适合我,我确保我的库模块和应用程序模块中具有正确的构建类型和产品风格。

答案 16 :(得分:1)

当您添加对使用错误插件类型的功能模块的引用时,也会发生这种情况。只需将com.android.application更改为com.android.featurecom.android.library

https://i.stack.imgur.com/NDjnG.png

答案 17 :(得分:1)

将productFlavors {}添加到a​​pp build.gradle解决了我的问题。见下文:

buildTypes {
        release {
             ...
        }
    }
productFlavors {
    }

答案 18 :(得分:1)

我认为它来自gradle-wrapper.properties文件: 制作分发网址distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 并且不要升级到:distributionUrl=https\://services.gradle.org/distributions/gradle-4 ....

答案 19 :(得分:1)

似乎这是Gradle上的一个错误。这解决了我的问题,但它不是一个解决方案。我们必须等待解决这个问题的新版本。

在项目集中的build.gradle classpath'com.android.tools.build:gradle:2.3.3'而不是 classpath'com.android.tools.build:gradle: 3.0.0' 即可。

在gradle-wrapper.properties上设置 https://services.gradle.org/distributions/gradle-3.3-all.zip ,而不是 https://services.gradle.org/分布/ gradle-4.1.2-all.zip

答案 20 :(得分:0)

从File->右键单击-> New-> Module-> Import Eclipse ADT project->浏览您的库->完成添加库 现在,在应用gradle设置中添加以下代码:

implementation project(':library')

最后在设置gradle中添加以下代码:

include ':app', ':library'

答案 21 :(得分:0)

将android studio更新为3.3之后。我在尝试加载Firebase JobDispatcher时遇到了这个问题。 在gradle.properties上添加此链接解决了我的问题

distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip

答案 22 :(得分:0)

我知道以上解决方案均无法解决,因为我长期困扰于此类问题,在仔细观察问题后终于解决了该问题,这表明

  

无法解决':app @ dexOptions / compileClasspath'的依赖关系:   无法解析项目:library_Name。

您需要确定并仔细检查该类是否位于该类中。我猜想这件事将对许多人有很大帮助,因为专注于这一点使我更接近解决方案。现在,如果该文件夹路径中不存在任何内容,则需要获取src文件夹build文件夹等所有内容,将其复制并粘贴到同步/重建项目中,如果需要,请尝试使它无效并重新启动android studio。希望这样可以使您摆脱我所遇到的麻烦。

谢谢

答案 23 :(得分:0)

在我看来,是这样的:

  

无法解决':app @ debug / compileClasspath'的依赖关系:无法转换工件。...

我尝试了十种解决方案,没有一个可行,因此我的解决方案是删除C:\ Users \ djdance.gradle \ caches并重新启动AS

答案 24 :(得分:0)

implementation 'com.android.support:appcompat-v7:27+'更改为implementation 'com.android.support:appcompat-v7:+'对我有用

我正在将Intellij 2019 CE与Kotlin一起使用

答案 25 :(得分:0)

当我尝试导入具有较低版本gradle的项目并意外停止gradle安装时遇到相同的错误,我通过禁用离线模式并完成较低版本gradle的安装来解决此问题

答案 26 :(得分:0)

我在库中有2种口味,应用gradle也需要具有相同的口味

答案 27 :(得分:0)

该线程似乎有点纳闷,但是与原始问题有关,不仅您必须在两个build.gradle文件中都具有buildTypes,还需要具有productFlavors(如果您正在使用它们)同时放在两个build.gradle文件中。

答案 28 :(得分:0)

如果在Linux上使用Android Studio:

转到:Home/Android Studio Projects folder/App name folder 在该页面上打开终端,然后输入:

./gradlew -Dhttp.proxyHost

检查是否在有效目录上设置了JAVA_HOME,如果未设置有效位置,请最终重建项目。

  

注意:如果不起作用,请删除gradle缓存文件夹或所有这些文件夹   然后使用Android Studio重新下载。

答案 29 :(得分:0)

在我的情况下,我遇到的问题是由于我试图导入的依赖(BottomNavigationViewEx)。

此依赖项需要从jitpack.io和maven.google.com下载,我将此配置放在buildscript部分中:

buildscript {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" } // this is incorrect
        maven { url "https://maven.google.com" } // this is incorrect
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    } 
}

这是不正确的,我需要删除这两个maven行并将它们包含在右边的部分中,&#39; allprojects&#39;:

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
        maven { url "https://maven.google.com" }
    }
}

希望它对我有帮助。

答案 30 :(得分:0)

我尝试使用互联网连接运行Android studio 3.0.1。 Android工作室开始自动从链接下载内容,这在Gradle构建通知中显示。我不能说这是一个肯定的答案,但试试这个......也许你可以解决你的问题。

答案 31 :(得分:-1)

Step 1:
1.Open the Preferences, by clicking File > Settings (on Mac, Android Studio > Preferences).
2.In the left pane, click Build, Execution, Deployment >> Gradle.
3.Uncheck/disable the Offline work checkbox.
4.Click Apply or OK.

Step 2:
downgrade the gradle-wrapper.properties content which you can access this 
file directory by clicking on CTRL + SHFT +R KEY 
e.g from
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

to 
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip

or to any lower version like /gradle-3.9-all.zip or /gradle-3.8-all.zip

答案 32 :(得分:-2)

转到build.gradle(app)并删除Dependencies条目 让它像这样空:

dependencies {

} 

此Android工作室开始更新此部件并使其可行。 希望这能帮到你;)

答案 33 :(得分:-3)

尝试这个我已经通过评论下面的行来解决我的问题了

依赖

{

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
//compileOnly 'com.android.support.test:runner:1.0.1'
//compileOnly 'com.android.support.test.espresso:espresso-core:3.0.1'
//androidTestImplementation 'junit:junit:4.12'

}