Appcompat v7未被纳入项目

时间:2015-07-29 11:37:58

标签: android gradle android-gradle build.gradle android-appcompat

我继承了一个使用appcompat-v7:20.0.0的项目 我无法构建项目,因为似乎gradle在同步/构建时不包含appcompat库。

我在build.gradle中的依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.google.android.gms:play-services:+'
}

此外没有任何游戏服务被引入该项目,但是九个旧机器人(我尝试包括不同的库,似乎所有来自jcenter的内容都已下载)正如您在下面的屏幕截图中看到的那样:

external libraries

gradle插件是1.0.0,同步期间没有问题 这类问题是否有任何已知的解决方案?

编辑1:
Android支持存储库
Android支持库
Google Play服务
都安装好了。但它也适用于新创建的项目。

编辑2:

./gradlew build输出:

Caused by: org.gradle.internal.UncheckedException: com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/Users/stephan/Library/Android/sdk/build-tools/20.0.0/aapt package -f --no-crunch -I /Users/stephan/Library/Android/sdk/platforms/android-21/android.jar -M /Users/project-path/build/intermediates/manifests/full/flavor/beta/AndroidManifest.xml -S /Users/project-path/build/intermediates/res/flavor/beta -A /Users/project-path/build/intermediates/assets/flavor/beta -m -J /Users/project-path/build/generated/source/r/flavor/beta -F /Users/project-path/build/intermediates/res/resources-flavor-beta.ap_ --debug-mode --custom-package de.my.project -0 apk --output-text-symbols /Users/project-path/build/intermediates/symbols/flavor/beta
Error Code:
1
Output:
/Users/project-path/build/intermediates/res/flavor/beta/values/values.xml:2127: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Light.Base.Spinner'.
/Users/project-path/build/intermediates/res/flavor/beta/values-v16/values.xml:89: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Light.Base.Spinner'.

我还检查了Widget.AppCompat.Light.Base.Spinner是appcompat-v7 20.0.0中values.xml的一部分
以下是sdk版本:

compileSdkVersion "Google Inc.:Google APIs:21"
buildToolsVersion "20.0.0"

defaultConfig {
    minSdkVersion 10
    targetSdkVersion 17
}



编辑3:

项目根build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}


App build.gradle

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:20.0.0'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.google.android.gms:play-services:+'

}

android {
    compileSdkVersion "Google Inc.:Google APIs:21"
    buildToolsVersion "20.0.0"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 17
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
    }

    signingConfigs {
        conf1 {
            storeFile file("path")
            storePassword ""
            keyAlias ""
            keyPassword ""
        }

        debug {
            storeFile file("path")
            storePassword ""
            keyAlias ""
            keyPassword ""
        }
    }

    buildTypes {
        debug {
            zipAlignEnabled true
            minifyEnabled false
            proguardFile getDefaultProguardFile('proguard-android.txt')
            proguardFile 'proguard-project.txt'
            signingConfig signingConfigs.debug
        }

        release {
            zipAlignEnabled true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
            proguardFiles 'proguard-rules.pro'
        }

        beta {
            initWith debug
            signingConfig signingConfigs.debug
        }
    }

    productFlavors {
        flavor1 {
            applicationId "de.package"
            versionCode 1
            versionName "1.0"
            signingConfig signingConfigs.conf1
        }
    }


    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

5 个答案:

答案 0 :(得分:1)

我阅读了Android appcompat库的文档,它说这个库依赖于v4支持库,因此您需要在项目中包含这个链接:https://developer.android.com/tools/support-library/features.html

您只需要更改build.gradle文件中的依赖项并添加以下行compile 'com.android.support:support-v4:22.2.1' 您可以更改版本(22.2.1)并根据需要添加版本20.0.0

答案 1 :(得分:0)

我上周遇到了同样的问题并通过以下方式解决了这个问题:

  1. 打开Android SDK Manager
  2. 滚动“附加内容”
  3. 部分的底部
  4. 选中 Android支持存储库 Android支持库 Google存储库
  5. 这将为您缺少的库下载缺少的工件/ jar作为本地maven存储库,以便gradle可以找到它们。

答案 2 :(得分:0)

您是否尝试使缓存无效并重新启动Android工作室?

答案 3 :(得分:0)

我们可以通过两种方式将appcompat添加到我们的项目中,

  1. 在lib文件夹中添加appcompat-v7作为jar文件
  2. - 首先从SDK管理器下载Android支持库。(如果您已下载,可以跳过此步骤。)

    - 重定向到本地SDK路径\ extras \ android \ support \ v7 \ appcompat \ libs \ android-support-v7-appcompat.jar。复制这个jar文件&将它保存在项目的libs文件夹中。

    - 您必须构建项目,现在appcompat-v7 jar文件已添加到您的项目中。

    - 确保您已在build.gradle(Module:app)应用程序文件中添加此评论。 依赖{     编译fileTree(dir:' libs',include:[' * .jar']) ..... }

    1. 将appcompat-v7添加为库依赖
    2. -File - >项目结构 - >在模块下 - >选择应用

      - 点击依赖关系 - >点击右侧顶部的加绿色图标 - >库依赖 - >从列表中选择appcompat-v7。

      - 现在appcompat-v7作为库添加到您的项目中。

      请试一试。如果您遇到任何问题,请告诉我。

      快乐编码.. 谢谢。

答案 4 :(得分:0)

我正在开发一个从Eclipse迁移到Android Studio的遗留项目,我遇到了同样的问题。无论我做多少次
清洁工程建设>重建
无效和重新启动
使用gradle文件同步项目

它对我不起作用,我甚至在中添加支持库作为jar libs
在我的 build.gradle 文件中有这样的结果:

configurations {
    all*.exclude group: 'com.android.support'
}

为什么要添加?我不知道。
删除修复我的问题。所以大家,如果这样做仍然没有解决您的问题,请在您的gradle文件中查找任何排除关键字。