Как объявить / настроить правильные зависимости Gradle для android buildToolsVersion или targetSdkVersion в Android Studio?

Я сталкивался с этой проблемой несколько раз, когда настраивал новый проект или ухудшал targetSdkVersion в Android Studio.

Gradle build system start complaining about dependencies "Failed to resolve: com.android.support:recyclerview-v7:21.1.2" or something else. 

Вот мой вопрос:

Есть ли какая-либо связь между версией зависимостей Gradle и targetSdkVersion / compileSdkVersion / buildToolsVersion? Если да, то как он рассчитывается и как мне настроить и определить правильные зависимости без необходимости каждый раз гуглить?

В моем текущем проекте мой файл build.gradle

apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"



defaultConfig {
    applicationId "com.mukesh.manageinvestment"
    minSdkVersion 8
    targetSdkVersion 23
    versionCode 1
    versionName "1.0.0"
}

def siteURL = '"'+WebsiteURL+'"'
def gameURL = '"'+GamesURL+'"'

signingConfigs{
    debug{

    }

    release{

    }
}

buildTypes {
    debug{
        minifyEnabled false
        buildConfigField "String", "BaseURL", siteURL
        buildConfigField "String", "GameURL", gameURL
        signingConfig signingConfigs.release
    }

    release {
        minifyEnabled true
        buildConfigField "String", "BaseURL", siteURL
        buildConfigField "String", "GameURL", gameURL
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.squareup.picasso:picasso:2.4.0'
}

Я изменил targetSdkVersion с 23 на 21, и мой текущий build.gradle выглядит так

apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"



defaultConfig {
    applicationId "com.devendraprasad.manageinvestment"
    minSdkVersion 8
    targetSdkVersion 21
    versionCode 1
    versionName "1.0.0"
}

def siteURL = '"'+WebsiteURL+'"'
def gameURL = '"'+GamesURL+'"'

signingConfigs{
    debug{

    }

    release{

    }
}

buildTypes {
    debug{
        minifyEnabled false
        buildConfigField "String", "BaseURL", siteURL
        buildConfigField "String", "GameURL", gameURL
        signingConfig signingConfigs.release
    }

    release {
        minifyEnabled true
        buildConfigField "String", "BaseURL", siteURL
        buildConfigField "String", "GameURL", gameURL
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:21.1.2'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.android.support:recyclerview-v7:21.1.2'
compile 'com.squareup.picasso:picasso:2.4.0'
}

Все выглядит хорошо. Версия зависимостей совпадает с targetSdkVersion и buildToolsVersion, но приложение все еще не компилируется. Это дает эту ошибку

Information:Gradle tasks [:app:assembleDebug]

Ошибка: возникла проблема при настройке проекта ": приложение".

PS: прикреплен скриншот моего sdk-менеджера

введите здесь описание изображения

Это происходит из-за того, что вспомогательные библиотеки с

Gradle build system start complaining about dependencies "Failed to resolve: com.android.support:recyclerview-v7:21.1.2" or something else. 
не существуют.


person Geek    schedule 23.09.2016    source источник


Ответы (1)


Воспользуйтесь одним из них:

Есть ли какая-либо связь между версией зависимостей Gradle и targetSdkVersion / compileSdkVersion / buildToolsVersion? Если да, то как он рассчитывается и как мне настроить и определить правильные зависимости без необходимости каждый раз искать в Google?

21.0.0
21.0.2
21.0.3
22.0.0
22.1.0
22.1.1
22.2.0
22.2.1
23.0.0
23.0.1
23.1.0
23.1.1
23.2.0
23.3.0
23.4.0
24.0.0
24.1.0
24.1.1
24.2.0
24.2.1

Существует связь между compileSdkVersion и основной версией библиотек поддержки.

Используйте compileSdkVersion=21 с библиотеками поддержки v21.
Используйте compileSdkVersion=22 с библиотеками поддержки v22.
Используйте compileSdkVersion=23 с библиотеками поддержки v23.
Используйте compileSdkVersion=24 с библиотеками поддержки v24.

Как правило, новая версия библиотеки поддержки выпускается вместе с новой версией платформы, предоставляя прокладки совместимости для недавно добавленных API, а также новые функции.

Есть ли связь между buildToolsVersion и версией библиотеки поддержки?

person Gabriele Mariotti    schedule 23.09.2016
comment
@MukeshJha Не уверен, но не думаю. В любом случае неплохо было бы использовать последнюю версию. - person Geek; 23.09.2016
comment
Я установил buildToolsVersion 21.1.2, compileSdkVersion 21, targetSdkVersion 21 и в зависимости compile 'com.android.support:appcompat-v7:21.0.3', но он показывает, что ошибка не может найти класс символов AppCompatActivity. - person Gabriele Mariotti; 23.09.2016
comment
@MukeshJha в 21.0.3 AppCompatyActivity не существует. В этой версии это ActionBarActivity. - person Geek; 23.09.2016
comment
@MukeshJha В любом случае вы используете новейшие библиотеки поддержки, используя compileSdk = 24 и targetSdk = 21. - person Gabriele Mariotti; 23.09.2016
comment
Не удалось разрешить все зависимости для конфигурации ": app: _debugCompile". Не удалось найти com.android.support:appcompat-v7:21.1.2. Ищется в следующих местах: файл: / C: / Program Files / Android / Android Studio1 / gradle / m2repository / com / android / support / appcompat-v7 / 21.1.2 / appcompat-v7-21.1.2.pom файл: / C: / Program Files / Android / Android Studio1 / gradle / m2repository / com / android / support / appcompat-v7 / 21.1.2 / appcompat-v7-21.1.2.jar https://jcenter.bintray.com/com/android/support/appcompat-v7/21.1.2/appcompat-v7-21.1.2.pom https://jcenter.bintray.com/com/android/support/appcompat-v7/21.1.2/appcompat-v7-21.1.2.jar файл: / F: /Software/android-sdk-windows/extras/android/m2repository/com/android/support/appcompat-v7/21.1.2/appcompat-v7-21.1.2.pom файл: / F: / программное обеспечение / android-sdk-windows / extras / android / m2re pository / com / android / support / appcompat-v7 / 21.1.2 / appcompat-v7-21.1.2.jar файл: / F: / Software / android-sdk-windows / extras / google / m2repository / com / android / support Файл /appcompat-v7/21.1.2/appcompat-v7-21.1.2.pom: / F: /Software/android-sdk-windows/extras/google/m2repository/com/android/support/appcompat-v7/21.1. 2 / appcompat-v7-21.1.2.jar Требуется для: ManageInvestment: app: unspecified Не удалось найти com.android.support:recyclerview-v7:21.1.2. Выполняется поиск в следующих местах: файл: / C: / Program Files / Android / Android Studio1 / gradle / m2repository / com / android / support / recyclerview-v7 / 21.1.2 / recyclerview-v7-21.1.2.pom файл: / C: / Program Files / Android / Android Studio1 / gradle / m2repository / com / android / support / recyclerview-v7 / 21.1.2 / recyclerview-v7-21.1.2.jar https://jcenter.bintray.com/com/android/support/recyclerview-v7/21.1.2/recyclerview-v7-21.1.2.pom https://jcenter.bintray.com/com/android/support/recyclerview-v7/21.1.2/recyclerview-v7-21.1.2.jar файл: / F: / Software / android-sdk-windows / extras / android / m2repository / com / android / support / recyclerview-v7 / 21. 1.2 / recyclerview-v7-21.1.2.pom файл: / F: /Software/android-sdk-windows/extras/android/m2repository/com/android/support/recyclerview-v7/21.1.2/recyclerview-v7-21.1 .2.jar файл: / F: /Software/android-sdk-windows/extras/google/m2repository/com/android/support/recyclerview-v7/21.1.2/recyclerview-v7-21.1.2.pom файл: / F: /Software/android-sdk-windows/extras/google/m2repository/com/android/support/recyclerview-v7/21.1.2/recyclerview-v7-21.1.2.jar Требуется: ManageInvestment: app: unspecified Информация: BUILD FAILED Информация: Общее время: 7,733 секунды Информация: 1 ошибка Информация: 0 предупреждений Информация: См. Полный вывод в консоли - person Gabriele Mariotti; 23.09.2016