2014-11-04 79 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.+" 

}