【问题标题】:How to declare/configure correct gradle dependencies for android buildToolsVersion or targetSdkVersion in Android Studio?如何在 Android Studio 中为 android buildToolsVersion 或 targetSdkVersion 声明/配置正确的 gradle 依赖项?
【发布时间】:2017-02-01 07:33:11
【问题描述】:

每当我在 Android Studio 中设置新项目或降级 targetSdkVersion 时,都会多次遇到此问题。

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]

错误:配置项目 ':app' 时出现问题。

无法解析配置“: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:/Software/android-sdk-windows/extras/android/m2repository/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 要求: 管理投资:应用程序:未指定 找不到 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 要求: 管理投资:应用程序:未指定 信息:构建失败 信息:总时间:7.733 秒 信息:1个错误 信息:0 个警告 信息:在控制台中查看完整的输出

PS:附上我的sdk manager截图

【问题讨论】:

    标签: android android-studio android-gradle-plugin build.gradle android-build


    【解决方案1】:

    这是因为 21.1.2 的支持库不存在

    使用其中一种:

    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
    

    gradle依赖的版本和targetSdkVersion/compileSdkVersion/buildToolsVersion有关系吗?如果是,那么它是如何计算的,以及如何配置和找出正确的依赖关系,而无需每次都使用谷歌搜索?

    compileSdkVersion 与支持库的主要版本之间存在关系。

    在支持库 v21 中使用 compileSdkVersion=21
    compileSdkVersion=22 与支持库 v22 一起使用。
    compileSdkVersion=23 与支持库 v23 一起使用。
    compileSdkVersion=24 与支持库 v24 一起使用。

    一般来说,新版本的支持库与新平台版本一起发布,为新添加的 API 和新功能提供兼容性垫片。

    【讨论】:

    • buildToolsVersion 和支持库版本有关系吗?
    • @MukeshJha 不确定,但我不认为。无论如何使用最新的都是个好主意。
    • 我设置了 buildToolsVersion "21.1.2", compileSdkVersion 21, targetSdkVersion 21 和依赖编译 'com.android.support:appcompat-v7:21.0.3' 但它显示错误“找不到符号类 AppCompatActivity”。
    • 21.0.3 AppCompatyActivity 中的 @MukeshJha 不存在。在这个版本中,它是 ActionBarActivity。
    • @MukeshJha 在任何情况下,您都可以使用最新的支持库,使用 compileSdk=24 和 targetSdk =21。
    猜你喜欢
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多