更新gradle后链接引用失败的问题(Android Studio)

37

我在更新Gradle(同时也添加了maven{jitpack.io}和geofirestore依赖项)后遇到了这个错误:

Android resource linking failed
Output:  C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:11: error: resource android:attr/dialogCornerRadius not found.
C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1169: error: resource android:attr/fontVariationSettings not found.
C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1170: error: resource android:attr/ttcIndex not found.
error: failed linking references.

Command: C:\Users\Paul\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\74062dcec80f00402d5904d26f22db6e\aapt2-3.2.0-4818971-windows\aapt2.exe link -I\
        C:\Users\Paul\AppData\Local\Android\Sdk\platforms\android-27\android.jar\
        --manifest\
        C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml\
        -o\
        C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\intermediates\processed_res\debug\processDebugResources\out\resources-debug.ap_\
        -R\
        @C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\intermediates\incremental\processDebugResources\resources-list-for-resources-debug.ap_.txt\
        --auto-add-overlay\
        --java\
        C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\generated\not_namespaced_r_class_sources\debug\processDebugResources\r\
        --custom-package\
        com.how2ride.how2ride\
        -0\
        apk\
        -c\
        en,fr\
        --output-text-symbols\
        C:\Users\Paul\AndroidStudioProjects\How2Ride2\app\build\intermediates\symbols\debug\R.txt\
        --no-version-vectors
Daemon:  AAPT2 aapt2-3.2.0-4818971-windows Daemon #0

我该如何解决这个问题?

以下是我的项目Build Gradle文件:

buildscript {

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


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:4.0.2'
    }
}

allprojects {
    repositories {
        google()
        jcenter()

        maven { url 'https://jitpack.io' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我的Module build gradle:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.how2ride.how2ride"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        resConfigs "en", "fr"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    implementation "com.google.android.gms:play-services-location:15.0.1"
    implementation 'com.google.firebase:firebase-ads:15.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.3'
    implementation 'com.firebaseui:firebase-ui-auth:4.1.0'
    implementation 'com.google.firebase:firebase-auth:16.0.3'
    implementation 'com.google.firebase:firebase-firestore:17.1.0'
    implementation 'com.github.imperiumlabs:GeoFirestore-Android:v1.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

apply plugin: 'com.google.gms.google-services'

我拥有最新版本的Android Studio,在升级Gradle之前,我的项目完美运行...

7个回答

57

将compileSdkVersion更改为:

compileSdkVersion 28

这些属性是在此版本中添加的,请查看此处此处此处


2
帮了我很多,谢谢! - BharathRao
我在使用compileSdkVersion 27和gradle版本3.1.4时遇到了同样的问题,这是gradle的一个bug吗? - Maksim Novikov
@MaksimNovikov 我不确定。你的 buildToolsVersion 是否大于等于 28.00? - kike
它解决了问题,但我遇到了与targetSdkVersion相关的错误 https://dev59.com/D1QK5IYBdhLWcg3wXu4v#52553352不确定如何修复这两个错误... - ka3ak

9

将Gradle版本降级至3.1.4,即使用classpath 'com.android.tools.build:gradle:3.1.4'


这对我有用:在更新到Gradle版本3.3.0后,R.java不再被找到。降级到3.2.1解决了这个问题。非常感谢! - Richard R

7

将Gradle降级至3.1.4版本。 检查你的build.gradle(模块:App)文件:

    classpath 'com.android.tools.build:gradle:3.1.4'

该项目已构建 :)

5
检查你的 graddle-wrapper.properties 文件。
Sun Jul 08 23:40:54 KST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

请检查gradle版本文件的最后一行URL。


3
在这个build.gradle文件中尝试运行这段代码。
 classpath 'com.android.tools.build:gradle:3.1.4'

2

将classpath设置为当前构建gradle并同步您的项目。Android Studio版本3.2似乎存在问题。在提示更新gradle时,也要更新classpath值。


2

今天在更新到新的gradle 3.0.1至3.2.0后,我遇到了这个问题。针对我的情况,在值文件夹中删除了ids.xml文件(它在项目中没有用),这对我有帮助。


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