为什么我的项目总是下载appcompat v7版本23当我在gradle中设置是appcompat v7版本22?

时间:2016-01-05 09:08:02

标签: android gradle libgdx android-support-library android-appcompat

我使用libgdx制作游戏,将BaseGameUltis导入我的项目并在gradle文件中设置:

compile "com.android.support:appcompat-v7:22.2.+"

但是在文件夹BaseGameUtils \ build \ intermediates \ explosion-aar \ com.android.support \ appcompat-v7总是版本23.0.0我得到这个错误,因为我无法兼容Android版本23,BaseGameUltis不兼容用android ver 23:

BaseGameUtils\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.0.0\res\values-v23\values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

这是我的gradle文件:

apply plugin: 'android-library'

repositories {
    mavenCentral()
}

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
    }
}

dependencies {
    compile 'com.android.support:support-v4:20.0.+'
    compile 'com.google.android.gms:play-services:+'
    compile "com.android.support:appcompat-v7:22.2.+"
}

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 22
    }
    productFlavors {
    }
}

我做错了什么?谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

通过删除static version" com.android.support:appcompat等声明末尾的加号(+),将您的依赖关系修复为compile -v7:22.2.x"`

有关详情,请参阅gradle文档中的here

答案 1 :(得分:1)

您需要使用api 23进行编译。
更改build.gradle此行:

 compileSdkVersion 23

因为您正在使用

 compile 'com.google.android.gms:play-services:+'

您使用的是最新版本 8.4.0 ,该版本与支持 libraries v23 具有相关性。 这是因为gradle使用v23而不是v22。

一般情况下,避免在build.gradle文件中使用+ 是一种很好的做法,因为这样您就不会知道您使用的是哪个版本的依赖项和您将来无法重现您的代码。

也不要使用不同版本的支持库。在您的情况下,您尝试使用com.android.support:appcompat-v7:22和com.android.support:support -V4:20

最后,使用gradle myModule:dependencies检查模块的完整列表。