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

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

我迁移到 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'.

我认为它来自 gradle-wrapper.properties 文件: 进行分配 url distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 并且不要升级到:distributionUrl=https\://services.gradle.org/distributions/gradle-4 ....

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

On 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/distributions/gradle-4.1.2-all.zip

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

Your app includes a build type that a library dependency does not

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

查找信息的正确位置现在是 this documentation

我找到了两种解决方案:

  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** and **buildToolsVersion "25.0.3" and classpath ' com.android.tools.build:gradle:2.3.3

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

    使用 gradle 4.1类路径 com.android.tools.build:gradle:3.0 的新功能。 0' ,我跟着这个 link https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html 。所以,这些是我的实现:

在文件 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
}

在应用程序的文件 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'

}

在library animator的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"
}

甚至,我也遇到过同样的问题。

我已经参考上面的问题解决了 使用新的 g‌ radle-4.1 的解决方案 2:

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

刚玩过

  1. Maven 亚马逊 url
repositories {
    maven {
        url "https://s3.amazonaws.com/repo.commonsware.com"
    }
    jcenter()
}
  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'

}

完整文件

        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'

        }
---------------------------------------------------------------------------

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

依赖关系

{

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'

}

使用 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{ ... }
}

进入项目 中包含的 所有 libraries/modules 的 build.gradle 个文件。

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

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

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

我遇到了同样的问题,已经解决了

鉴于我的情况,我猜你的应用程序项目的 build.gradle 文件包含以下片段:

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

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

android {
    ...
    dexOptions {
        ...
    }

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

希望能帮到别人。

你只需要在 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'

全部修改

compile project(':library:yourproject')

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

在您的应用中 build.gradle。注意带配置的行。

确保你在你的项目中

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

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

解决方案:

下载终极版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',配置:'default')

dependencies {
   .
   .
   .


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


}

将 productFlavors{} 添加到应用 build.gradle 为我解决了这个问题。见下文:

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

我有同样的问题,通过将 'mavenCentral()' 添加到 build.gradle(Project)

解决了这个问题
allprojects {
    repositories {
        ...
        mavenCentral()
    }
}

这是我解决问题的方法:

而不是

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

应用内gradle我用过

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

例如在我的构建类型中

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

我添加了这一行

demoTest {
   matchingFallbacks = ['debug', 'release']
}
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

就我而言,我遇到的问题是由于我试图导入的依赖项 (BottomNavigationViewEx)。

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

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 行并将它们包含在正确的部分中,'allprojects':

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

希望它对我一样的人有所帮助。

确保在Gradle设置禁用"Offline work"(设置->构建、执行、部署->构建工具->Gradle).

我犯了这个错误。我遵循了加速 gradle 构建的指南,并打开了离线工作选项。如果启用,Gradle 将无法下载任何新的依赖项,因此会导致 "Unable to resolve dependency" 错误。

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

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

apply plugin: 'com.android.application'

虽然这一行应该是 -

apply plugin: 'com.android.library'

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

我尝试了从取消选中离线工作matchingFallbacks的所有方法。但是没有任何效果。

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

而不是

implementation project(':lib-name')

我用过,

implementation project(path:':lib-name', configuration: 'default')

Eg: implementation project(path:':myService', configuration: 'default')

而且效果非常好。 :)

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

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

我的问题如下

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

检查Enable embedded Maven Repository

解决

我尝试了上面给出的所有解决方案,其中 none 对我有用,我确保我的库模块和应用程序模块中有准确的构建类型和产品风格。

如果在 Linux 上使用 Android Studio:

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

./gradlew -Dhttp.proxyHost

检查 JAVA_HOME 是否设置在有效目录上,如果未设置有效位置,最后重建您的项目。

NOTE: if that doesn't work remove gradle cache folder or all of that and download again with Android Studio.

这个话题似乎有点奇怪,但是关于原始问题,您不仅必须在两个 build.gradle 文件中都有您的 buildTypes,您还需要有您的 productFlavors(如果您是当然也可以在 build.gradle 文件中使用它们。

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

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

更改 gradle 中的代码:

  compile project(':yourLibrary')

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

从文件添加库->右键单击->新建->模块->导入 Eclipse ADT 项目->浏览您的库->完成 现在在应用 gradle 设置中添加以下代码:

implementation project(':library')

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

include ':app', ':library'

将 android Studio 更新到 3.3 后。我在尝试加载 Firebase JobDispatcher 时遇到了这个问题。 在 gradle.properties 上添加这个 link 解决了我的问题

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

我知道上面的none个解决方案是行得通的,因为我一直陷入这种问题很长一段时间,在非常仔细地观察问题后终于解决了这个问题,这表明

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

您需要确认并仔细检查 class 是否位于此处。我猜这件事对很多人都会有很大帮助,因为专注于这一点让我离解决方案更近了一步。现在,如果该文件夹路径中不存在任何内容,您需要获取全部内容,例如 src 文件夹构建文件夹等所有内容,复制并将其粘贴到 sync/rebuild 项目,如果需要,请尝试使无效并重新启动 android 工作室。希望这能让您摆脱我遇到的麻烦。

谢谢

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

我正在使用 Intellij 2019 CE 和 Kotlin

我的情况是这样的:

Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform artifact....

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