Android studio 3.0: невозможно разрешить зависимость для:app@dexOptions/compileClasspath': не удалось разрешить проект: аниматоры

Я перехожу на 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'.

31 ответ

Решение

С 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

Как указано в официальном руководстве по миграции, эта ошибка возникает, когда:

Ваше приложение включает тип сборки, который не зависит от библиотеки

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

Установка подходящих резервных конфигураций - это верный способ решить эту проблему.

Убедитесь, что вы в своем проекте

  1. Откройте Настройки, нажав Файл > Настройки (на Mac,Android Studio > Настройки).
  2. На левой панели щелкните Построение, Выполнение, Развертывание >> Gradle.
  3. Снимите/отключите Offline work флажок.
  4. Нажмите Применить или ОК.

Я потратил много времени на эту проблему, и ни одно из вышеперечисленных решений не помогло мне. Имена и количество типов сборки также были одинаковыми как в приложении, так и в проекте библиотеки.

Единственная ошибка, которую я сделал, была - В build.gradle библиотечного проекта я использовал строку

применить плагин: 'com.android.application'

Хотя эта строка должна быть -

применить плагин: 'com.android.library'

После внесения этого изменения эта ошибка была устранена.

Изменить все

compile project(':library:yourproject')

в

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

в вашем приложении build.gradle. Обратите внимание на строку с конфигурацией.

Я перепробовал все, от снятия отметки с офлайн-работы до соответствующих откатов. Но ничего не сработало.

Затем в зависимостях app.gradle,

вместо

проект внедрения (':lib-name')

Я использовал,

проект реализации (путь:':lib-name', конфигурация: 'default')

Например: implementation project(path:':myService', configuration: 'default')

И это сработало как шарм.:)

Я добавил модуль зависимости с сервисом и не делаю библиотеку частью проекта AOSP.

На всякий случай, это кому-то помогает.

Решение:

Загрузите окончательную версию Gradle

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

gradle-4.x-rc-1-all.zip.sha256 09 января 2018 года 01:15 +0000 64,00B

Распакуйте дистрибутив

Перейдите в Android Studio -> Файл -> Настройки -> Gradle -> Использовать локальное распространение Gradle. Найдите файл и нажмите ОК.

В gradle: app напишите это, реализация (путь: ':animators', конфигурация: 'default')

dependencies {

.
.


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

}

Вот как я решил свою проблему.

вместо

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

в приложении Gralde я использовал

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

А в моих типах сборки например

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

Я добавил эту строку

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

Моя проблема ниже

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

Решено проверкой Enable embedded Maven Repository

У меня была та же проблема, и я решил ее, добавив mavenCentral() в build.gradle(Project)

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

Измените этот код в Gradle:

  compile project(':yourLibrary')

в

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

Даже я столкнулся с той же проблемой.

Я исправил проблему, сославшись на вышеуказанное Решение 2 с новым g‌ radle-4.1:

Я сделал следующие изменения Gradle. Кажется, что загрузка ресурсов через maven Amazon помогла мне решить проблему, есть проблемы с библиотекой appcompat. Проверьте и убедитесь, что appcompat совместимые библиотеки поддержки загружены в вашу систему. Что я чувствую, это просто ресурсы, не загруженные через maven, что вызывает проблему с компиляцией. Убедитесь, что ресурсы найдены на вашем локальном диске, чтобы решить эту проблему.

Просто поиграл с

  1. URL-адрес Maven Amazon
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'

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

Убедитесь, что вы отключили "Автономную работу" в настройках Gradle (Настройка-> Сборка, Выполнение, Развертывание-> Инструменты сборки->Gradle).

Я сделал эту ошибку. Я следовал руководству по ускорению сборки gradle и включил опцию автономной работы. Если это включено, Gradle не сможет загружать какие-либо новые зависимости и, следовательно, приведет к ошибке "Невозможно разрешить зависимость".

Я нашел два типа решений:

  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 "25.0.3" и classpath '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. Итак, это мои реализации:

В файле 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'

}

В 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"
}

Вам просто нужно сбросить зависимости в файле 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'

Это также может произойти, когда вы добавляете ссылку на функциональный модуль, который использует неправильный тип плагина. Просто поменяй com.android.application в com.android.feature или же com.android.library

Добавление productFlavors{} в приложение build.gradle решило эту проблему для меня. Увидеть ниже:

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

Я встретил те же проблемы и решил.

Из-за моей ситуации, я думаю, ваш build.gradle Файл для проекта приложения содержит следующие фрагменты:

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

но на самом деле, dexOptions это не тип сборки, вы должны двигаться dexOptions разделить buildTypes, как это:

android {
    ...
    dexOptions {
        ...
    }

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

Надеюсь, что это может помочь кому-то.

Я думаю, что это из gradle-wrapper.properties файл: сделать дистрибутивный URL distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip и не придерживайтесь: distributionUrl=https\://services.gradle.org/distributions/gradle-4 ....

Эта ветка, кажется, немного удивилась, однако, что касается исходного вопроса, вы не только должны иметь свои buildTypes в обоих файлах build.gradle, вы должны иметь ваши productFlavors (если вы, конечно, используете их) в обоих файлы build.gradle также.

Я перепробовал все решения, приведенные выше, и ни одно из них не сработало для меня, я гарантировал, что у меня есть точные типы сборки и варианты продукта в моем модуле библиотеки и модуле приложения.

В моем случае проблема была из-за зависимости, которую я пытался импортировать (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 строки и включить их в правильный раздел, "allprojects":

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

Надеюсь, это поможет кому-то, как и мне.

Похоже, это ошибка на 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/distributions/gradle-4.1.2-all.zip

Если вы используете Android Studio в Linux:

идти к: Home/Android Studio Projects folder/App name folderоткройте терминал на этой странице и введите:

./gradlew -Dhttp.proxyHost

проверить, если JAVA_HOME устанавливается в допустимом каталоге, если не задано правильное местоположение, наконец пересоберите ваш проект.

ПРИМЕЧАНИЕ: если это не сработает, удалите папку кэша Gradle или все это и загрузите снова с Android Studio.

Я сталкиваюсь с той же ошибкой, когда пытаюсь импортировать какой-либо проект с более низкой версией Gradle и случайно останавливаю установку Gradle. Я исправляю эту проблему, отключая автономный режим, и заканчивая установку более низкой версии Gradle.

Я попытался запустить Android Studio 3.0.1 с подключением к Интернету. Студия Android начала автоматически загружать что-то по ссылке, которая отображалась в уведомлении о сборке Gradle. Я не могу сказать, что это верный ответ, но попробуйте это... может быть, вы можете решить свою проблему.

После обновления андроид студии до 3.3. Я столкнулся с этой проблемой, когда пытался загрузить Firebase JobDispatcher. Добавление этой ссылки на gradle.properties решило мою проблему

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

У меня было 2 варианта в библиотеке, app gradle должен иметь такой же вкус

Добавьте библиотеку из Файл-> Правой кнопкой мыши-> Создать-> Модуль-> Импортировать проект Eclipse ADT-> Просмотрите вашу библиотеку-> Готово. Теперь добавьте в настройку gdle приложения следующий код:

implementation project(':library')

Наконец добавьте в настройку gradle следующий код:

include ':app', ':library'

Это может быть старая тема, но ни один из предложенных шагов не помог мне. Поэтому я придумала это глупое решение.

Просто иди в Settings > Build, Execution, Deployment > Gradle и снимите флажок Оффлайн работа

Это означает только то, что ваша среда настроена для автономной работы и не может загрузить репозиторий библиотеки git. Ваш gradle не будет обновлять / загружать что-либо, что вы положили туда, если на локальном компьютере уже нет автономной / кэшированной копии этой библиотеки.

Ура, если вы нашли это полезным

Другие вопросы по тегам