Appcompat v7没有被引入到项目中。

9

我接手了一个使用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:+'
}

同时,该项目未引入任何 Google Play 服务,但引入了 Nine Old Androids(我尝试引入不同的库,似乎所有从 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.Spinnerappcompat-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()
    }
}


应用程序构建.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
    }
}

2
我无法构建该项目。有什么错误消息或症状让您得出结论,即未包含'appcompat-v7:20.0.0'? - k3b
1
它不会出现在外部库中(如屏幕截图所示),有些样式也找不到。例如:Widget.AppCompat.Light.Base.Spinner - Stephan
1
在AndroidStudio中:您是否右键单击“主模块->更改模块设置”并添加了缺失的依赖项? - k3b
1
它存在,因为它只显示build.gradle的属性。我还刚刚检查了代码库并尝试了一个不使用Android Studio的构建。这绝对是一个Gradle问题。 - Stephan
1
尝试不使用Android Studio进行构建。这是否意味着使用gradlew --gui构建失败了? - k3b
显示剩余11条评论
5个回答

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
虽然v7确实依赖于v4,但Gradle应该可以解决问题,文档中只是说:如果您正在使用Ant或Eclipse,请确保包含v4支持库...。但是我尝试添加v4,可惜并没有帮助。 - Stephan
1
我有一个像你一样的build.gradle文件,在我的项目中加载了库appcompat。这是我的依赖部分: dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.google.code.gson:gson:2.3.1' compile 'com.android.support:support-v4:22.2.1' compile 'com.android.support:gridlayout-v7:22.2.1' compile 'com.android.support:appcompat-v7:22.2.1'repositories { mavenCentral() }} - Kiko Blanco
1
正如我所写的,这是一个我继承的旧项目,我必须使用appcompat 20,因为它仍然支持holo。我还创建了一个新项目,与旧项目完全相同的依赖关系,在那里它可以工作。因此,肯定存在另一个奇怪的故障或错误。 - Stephan
你看过这篇帖子吗?https://dev59.com/3-o6XIcBkEYKwwoYIAgL?也许它就是你的问题。 - Kiko Blanco

0

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

  1. 打开Android SDK Manager
  2. 在“Extras”部分向下滚动到底部
  3. 勾选Android Support RepositoryAndroid Support LibraryGoogle Repository

这将下载缺失的库的相关文件/ JAR包作为本地Maven存储库,以便Gradle可以找到它们。


一切都安装好了,我甚至在我的硬盘上检查过了。 - Stephan
你能否更新项目使用的Gradle版本?我假设在1版和当前版本(1.2.0)之间,Android Gradle插件中的逻辑已经更新,以便在本地机器上查找支持库。 - ripple182
你能提供你的Gradle日志输出吗? - ripple182
可能是您的compileSdkVersion与您正在寻找的appcomact版本不对齐的问题。这个溢出帖子涉及到了这个问题:https://dev59.com/6F8d5IYBdhLWcg3wzEv4 - ripple182

0
你尝试过清除缓存并重新启动Android Studio吗?

0

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

  1. 将appcompat-v7作为jar文件添加到lib文件夹中

-首先从SDK管理器中下载Android支持库(如果您已经下载了,可以跳过此步骤)。

-转到本地SDK路径\extras\android\support\v7\appcompat\libs\android-support-v7-appcompat.jar。将此jar文件复制并保存到项目的libs文件夹中。

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

-请确保您已在应用程序的build.gradle(Module:app)文件中添加了以下注释。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) ..... }

  1. 将appcompat-v7作为库依赖项添加

-文件-->项目结构-->在模块下选择app

-点击Dependencies-->右上角的绿色加号-->Library dependencies-->从列表中选择appcompat-v7。

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

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

编程愉快... 谢谢。


0

我正在处理一个从Eclipse迁移到Android Studio的遗留项目,我遇到了同样的问题。无论我做多少次
清理项目
构建 > 重建
使无效并重新启动
与gradle文件同步项目

对我来说都没有用,我甚至在libs中添加了支持库作为jar包
事实证明,在我的build.gradle文件中有这个:

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

为什么要添加它?我不知道。
移除它解决了我的问题。所以,如果你做了所有这些但问题仍未解决,请查找gradle文件中的任何exclude关键字。


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