2014-11-04 78 views
17

我试图导入两个android支持库。我正尝试将GoogleMaps AP2应用到我的Android应用程序中。因此我需要两个库。我正在使用AndroidStudio和Gradle。使用gradle添加支持库v7,v13不起作用

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 

回答

29

你必须使用最新版本的支持-V13的:21.0 +

你有这样的错误,因为这两个程序兼容性和支持-V13取决于support-v4和它们是版本冲突。

不是最好的方式。

+0

好吧,我明白了。而如何我可以修复这个问题吗?是否没有办法编译两者? – 2014-11-04 18:50:12

+5

只需替换'compile“的support-v13版本com.android.support:support-v13:21.0。+”' – pdegand59 2014-11-09 10:45:11

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' 
} 
+0

现在请使用'compile“ com.android.support:support-v13:23.0“+' – 2016-08-02 11:29:35

1

我遇到了类似的问题,发现https://code.google.com/p/android/issues/detail?id=73802:“支持-V13:19.1.0库中有不正确的元数据,可能是由开关产生的到AAR从JAR'

我试图与一群不同的组合建立和发现如下:

1)如果使用支持-V13 <支持-V13:20如果使用support-v13> = support-v13:20.0.0,其他支持库也可以是任何版本。如果使用support-v13> = support-v13:20.0.0,则其他支持库也必须在20.0.0之前。

实施例:

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

compile "com.android.support:support-v4:22.0.0" 
compile "com.android.support:appcompat-v7:22.0.0" 
compile "com.android.support:support-v13:19.0.0" 

错误:模块版本com.android.support: support-v13:19.0.0取决于库,但不是库本身

support-v13 < support-v13:20.0.0 w第i个其它支持库< 20.0.0

compile "com.android.support:support-v4:19.0.0" 
compile "com.android.support:appcompat-v7:19.0.0" 
compile "com.android.support:support-v13:19.0.0" 

构建精细

支持-V13> =支持-V13:20.0.0

compile "com.android.support:support-v4:13.0.0" 
compile "com.android.support:appcompat-v7:22.0.0" 
compile "com.android.support:support-v13:20.0.0" 

构建精细

所以,只要确保support-v13至少为support-v13:20.0.0或更高版本。

0

删除线:compile 'com.android.support:appcompat-v7:21.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.+" 

}