Android studio 3.0:无法解析依赖:app @ dexOptions/compileClasspath':无法解析项目:动画师

Ime*_*ene 146 android-studio android-gradle-plugin 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>
Run Code Online (Sandbox Code Playgroud)

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

 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'.
Run Code Online (Sandbox Code Playgroud)

Sac*_*ise 132

使用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.
Run Code Online (Sandbox Code Playgroud)

简单地解决这个问题.

无论如何

buildTypes{
          debug{ ... }
          release{ ... }
    }
Run Code Online (Sandbox Code Playgroud)

你有(app)build.gradle文件,你必须包含所有buildTypes{ }相同的名称

buildTypes{
      debug{ ... }
      release{ ... }
}
Run Code Online (Sandbox Code Playgroud)

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

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

仍然没有修复问题,请将gradle-wrapper.properties更新为

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Run Code Online (Sandbox Code Playgroud)

  • 包含所有具有相同名称的`buildTypes {}`?你在说什么? (95认同)
  • 提到的解决方案尚不清楚. (30认同)
  • 我也不知道这意味着什么. (9认同)
  • https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#variant_dependencies不幸的是,这不再适用于现代版本 (5认同)
  • 这是一个解决方案,只是一种解决方法。@JackHang答案是处理此问题的正确方法(/sf/answers/3292055301/) (3认同)
  • 尽管这是有道理的,但这不是一个有用的答案......我不想将这种构建类型添加到我的所有模块中......除了我的应用程序之外,他们绝对没有任何业务!我的应用程序需要知道它需要从哪个配置的后备构建类型! (2认同)

小智 119

官方迁移指南中所述,在以下情况下会遇到此错误:

您的应用程序包含库依赖项不包含的构建类型

android {
  buildTypes {
      release {
          ...
      }
      dexOptions {
          ...
        // release & debug is in project animators
        matchingFallbacks = ['release', 'debug']
      }
      debug {
          ...
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

设置匹配配置回退显然是解决这个问题的正确方法.

  • 这应该是官方移民指南中解释的正确答案.https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#resolve_matching_errors (18认同)
  • 这绝对是正确的答案! (5认同)
  • 这是最好的答案,它解决了我的问题,我只需要在Flavors中使用matchingFallbacks = ['release','debug'] (3认同)
  • 太棒了!谢谢你救了我的一天. (3认同)

X S*_*ish 93

确保你在项目中

  1. 单击文件 > 设置(在Mac上, Android Studio > 首选项)打开首选项.
  2. 在左窗格中,单击" 生成","执行","部署 ">>" Gradle".
  3. 取消选中/禁用Offline work复选框.
  4. 单击应用确定.

  • 不适用于当地图书馆.选项已取消选中,仍然存在问题 (4认同)
  • 最简单,最好的答案 (2认同)

Anu*_*arg 68

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

我唯一的错误是 - 在库项目的build.gradle中,我正在使用line

apply plugin:'com.android.application'

这条线应该是 -

apply plugin:'com.android.library'

进行此更改后,此错误已得到解决.

  • 太棒了!这是我的问题.需要注意的是,defaultConfig {}中的applicationId也需要在库中删除. (9认同)

Duy*_*han 58

全部修改

compile project(':library:yourproject')

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

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


Sha*_*chi 27

我尝试了从取消勾选离线工作匹配的回复.但没有任何效果.

然后,在app.gradle的依赖项中,

代替

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

我用了,

实现项目(路径:':lib-name',配置:'默认')

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

它就像一个魅力.:)

我正在添加一个带有服务依赖模块,并没有将库作为AOSP项目的一部分.

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

  • 这是唯一对我有用的东西,我已经把头发拉了好几个小时了……非常感谢! (4认同)
  • 这种方式没有gradle错误,但仍然无法从java引用库:/ (3认同)
  • 谢谢,我最终不得不为库中所有可用的库做出匹配的样式。 (3认同)
  • 这是唯一对我有用的东西。 (2认同)

小智 16

解:

下载最终版Gradle

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

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

解压缩发行版

转到Android Studio - >文件 - >设置 - > Gradle - >使用本地gradle分发搜索文件,然后单击确定

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

gradle-4.x-rc-1-all.zip.sha256 09-Jan-2018 01:15 +0000 64.00B
Run Code Online (Sandbox Code Playgroud)

}


Ani*_*Dey 9

这是我如何解决我的问题.

代替

compile project(':library_name')
compile project(':library_name')
Run Code Online (Sandbox Code Playgroud)

在app gralde我用过

implementation project(':library_name')
implementation project(':library_name')
Run Code Online (Sandbox Code Playgroud)

在我的构建类型中,例如

demoTest {
 .........
}
Run Code Online (Sandbox Code Playgroud)

我添加了这一行

demoTest {
   matchingFallbacks = ['debug', 'release']
}
Run Code Online (Sandbox Code Playgroud)


she*_*hub 7

我的问题如下

Unable to resolve dependency for ':app@debug/compileClasspath': Could not download rxjava.jar (io.reactivex.rxjava2:rxjava:2.2.2)
Run Code Online (Sandbox Code Playgroud)

通过检查解决 Enable embedded Maven Repository

在此输入图像描述

  • 这解决了我的问题!非常感谢. (3认同)

小智 6

我遇到了同样的问题,并通过将'mavenCentral()'添加到build.gradle(项目)来解决它

allprojects {
    repositories {
        ...
        mavenCentral()
    }
}
Run Code Online (Sandbox Code Playgroud)


Arv*_*ala 5

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

我通过使用新的g radle-4.1引用上面的解决方案2来解决这个问题:

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

刚刚玩过

  1. Maven亚马逊网址
repositories {
    maven {
        url "https://s3.amazonaws.com/repo.commonsware.com"
    }
    jcenter()
}
Run Code Online (Sandbox Code Playgroud)
  1. 在驱动器中下载兼容的支持库,并在gradle中引用兼容的库.
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'

}
Run Code Online (Sandbox Code Playgroud)

完整档案

        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'

        }
---------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述


小智 5

在gradle中更改此代码:

  compile project(':yourLibrary')
Run Code Online (Sandbox Code Playgroud)

   implementation project(path: ': yourLibrary', configuration:'default')
Run Code Online (Sandbox Code Playgroud)