Gradle显示支持库的错误:"模块版本com.android.support:support-v13:19.0.1依赖于库但不是库本身"

时间:2014-07-01 21:16:09

标签: android gradle android-studio

这就是我的build.gradle所说的:

apply plugin: 'android'
apply plugin: 'crashlytics'
apply from : '../gradle/checkstyle.gradle'
apply from : '../gradle/pmd.gradle'

compileSdkVersion 19
buildToolsVersion "19.0.3"

defaultConfig {
    minSdkVersion 17
    targetSdkVersion 19
}

但是我看到了这个编译错误:

Gradle 'mobi-client-connect-android-mobile' project refresh failed:
       Module version com.android.support:support-v13:19.0.1 depends on libraries but is not a library itself

5 个答案:

答案 0 :(得分:5)

如果您刚刚升级到Android Studio 0.8.x,请更新所有支持库版本号以匹配您的构建工具。

dependencies {
    compile 'com.android.support:support-v13:19.1.+'
    ...
}

您可能想要更新构建工具版本

buildToolsVersion "19.1.0"

糟糕的错误消息:-(此更新一直很痛苦!

答案 1 :(得分:5)

我不知道这是如何运作的!

Original Gradle:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'
    defaultConfig {
        applicationId 'org.ieeekjsieit.app'
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v13:19.+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.nineoldandroids:library:2.4.+'
}

我刚把它改为:

New Gradle:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'
    defaultConfig {
        applicationId 'org.ieeekjsieit.app'
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v13:19.+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.nineoldandroids:library:2.4.+'
}

正如您所看到的,我强迫appcompat-v7使用特定版本的19. +而不是最新版本!

在更改之前我遇到了这个错误:

Gradle 'org.ieeekjsieit.app' project refresh failed:
       Module version com.android.support:support-v13:19.1.0 depends on libraries but is not a library itself

答案 2 :(得分:3)

我找到了解决方案 我不得不降级支持库和存储库的版本,
来自:
        Android支持存储库:6
        Android支持库:20
于:
        Android支持存储库:5
        Android支持库:19.1

唯一可能的是复制那个版本的' extras'将文件夹放入你的sdk' extras'文件夹中。

答案 3 :(得分:3)

看起来support-v13:19.1.0可能包含不正确的元数据。尝试切换到

compile 'com.android.support:support-v13:20.0.0'并查看问题是否仍然存在?

答案 4 :(得分:0)

我收到消息:“错误:模块版本com.android.support:support-v13:19.0.1取决于库但不是库本身”

Android Studio推荐: support-v4到21.0.0-rc1 appcompat-v7到21.0.0-rc1

当我注释掉对support-v13的调用时,我遇到的错误是在支持库的AndroidManifest.xml中。 错误:(3)无法解析:必须是整数或代号。

<强> /support-v4/21.0.0-rc1/AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="android.support.v4" >

    <uses-sdk
        android:minSdkVersion="L"
        android:targetSdkVersion="L" />

    <application />

</manifest>

我将支持库推回到19,它解决了我的问题。