如何在android Studio中为android buildToolsVersion或targetSdkVersion声明/配置正确的渐变依赖项?
每当我在Android Studio中设置新项目或降级targetSdkVersion时,我都会多次遇到这个问题如何在android Studio中为android buildToolsVersion或targetSdkVersion声明/配置正确的渐变依赖项?,android,android-studio,android-gradle-plugin,build.gradle,android-build,Android,Android Studio,Android Gradle Plugin,Build.gradle,Android Build,每当我在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/compileSdkVers
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”时出现问题
无法解析配置“”的所有依赖项:应用:\ u debugCompile'。
找不到com.android.support:appcompat-v7:21.1.2。
在以下位置搜索:
文件:/C:/Program Files/Android/Android Studio1/gradle/m2 repository/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
文件:/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
要求:
ManageInvestment:应用程序:未指定
找不到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
文件:/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:应用程序:未指定
信息:生成失败
信息:总时间:7.733秒
信息:1个错误
信息:0个警告
信息:请参阅控制台中的完整输出
附后是我的sdk管理器截图
这是因为
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
。使用支持库v22的
compileSdkVersion=22
。使用支持库v23的
compileSdkVersion=23
。对支持库v24使用
compileSdkVersion=24
通常,支持库的新版本与新平台版本一起发布,为新添加的API和新功能提供兼容性垫片。buildToolsVersion和support library版本之间是否有任何关系?@MukeshJha不确定,但我不认为。无论如何使用最新版本都是一个不错的主意。我已经将buildToolsVersion设置为“21.1.2”,编译了DKVersion 21,targetSdkVersion 21和dependecy中编译'com.android.support:appcompat-v7:21.0.3',但它显示错误“找不到符号类AppCompatActivity”。@MukeshJha在21.0.3 AppCompatyActivity中不存在。在此版本中,它是ActionBarActivity。@MukeshJha在任何情况下,您都可以使用compileSdk=24和targetSdk=21的最新支持库。