使用gradle添加支持库v7、v13无法正常工作

17

我正在尝试导入两个Android支持库。我正在将GoogleMaps AP2实现到我的Android应用程序中。因此,我需要这两个库。我正在使用Android Studio和Gradle。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    apt "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"
    compile 'com.android.support:appcompat-v7:21.0.+'
    // compile 'com.google.android.gms:play-services:6.1.+'
    compile "com.android.support:support-v13:18.0.+"
    compile "com.loopj.android:android-async-http:1.4.5"
    repositories {
        mavenCentral()
    }
    compile "com.github.chrisbanes.actionbarpulltorefresh:library:+"
    compile 'joda-time:joda-time:2.5'
}

错误信息如下:

Module version com.android.support:support-v13:18.0.0 depends on libraries but is not a library itself
5个回答

30
您必须使用最新版本的support-v13:21.0.+。
您出现此错误是因为appcompat和support-v13都依赖于support-v4,并且存在版本冲突。
顺便说一下,这不是最好的错误提示。

好的,我明白了。那么我该如何解决这个问题呢?难道没有办法同时编译两者吗? - So S
5
只需将support-v13的版本替换为compile "com.android.support:support-v13:21.0.+" - pdegand59

3

最终,这段代码已经在我的电脑上运行成功:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    apt "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"
    compile 'com.android.support:support-v4:20.0.+'
    compile "com.android.support:appcompat-v7:20.0.+"
    compile "com.android.support:support-v13:20.0.+"
    compile 'com.google.android.gms:play-services:6.1.+'
    compile "com.loopj.android:android-async-http:1.4.5"
    repositories {
        mavenCentral()
    }
    compile "com.github.chrisbanes.actionbarpulltorefresh:library:+"
    compile 'joda-time:joda-time:2.5'
}

现在,请使用compile "com.android.support:support-v13:23.0.+" - IntelliJ Amiya

1

我遇到了类似的问题,并找到了https://code.google.com/p/android/issues/detail?id=73802'support-v13:19.1.0库具有不正确的元数据,可能是由于从JAR切换到AAR导致的'

我尝试使用不同的组合进行构建,并发现以下内容:

1)如果使用support-v13 < support-v13:20.0.0,则所有其他支持库也必须在20.0.0之前

2)如果使用support-v13 >= support-v13:20.0.0,则其他支持库可以是任何版本。

例如:

support-v13 < support-v13:20.0.0与其他支持库> = 20.0.0

implementation 'com.android.support:support-v4:22.0.0'
implementation 'com.android.support:appcompat-v7:22.0.0'
implementation 'com.android.support:support-v13:19.0.0'

错误:模块版本com.android.support:support-v13:19.0.0依赖于库,但它本身不是一个库。
support-v13 < support-v13:20.0.0与其他支持库< 20.0.0。
implementation 'com.android.support:support-v4:19.0.0'
implementation 'com.android.support:appcompat-v7:19.0.0'
implementation 'com.android.support:support-v13:19.0.0'

编译正常

support-v13 >= support-v13:20.0.0

implementation 'com.android.support:support-v4:13.0.0'
implementation 'com.android.support:appcompat-v7:22.0.0'
implementation 'com.android.support:support-v13:20.0.0'

编译正常

因此,请确保support-v13至少为support-v13:20.0.0或更高版本。


0

对于v13版本,请添加compileSdkVersion 21,targetSdkVersion 21,并编译“com.android.support:support-v13:21.0.+”。 您不应该注释掉“com.android.support:appcompat-v7:21.0.3”这一行,这样应该可以正常工作。 我的Gradle示例

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "someId"
    minSdkVersion 11
    targetSdkVersion 21
    versionCode 5
    versionName "1.1"
}
buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services:6.5.87'
compile "com.android.support:support-v13:21.0.+"

}


0
删除行:compile 'com.android.support:appcompat-v7:21.0.+'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接