【问题标题】:Can't link file resource after updating to gradle 3.0.1更新到 gradle 3.0.1 后无法链接文件资源
【发布时间】:2017-12-08 12:58:48
【问题描述】:

尝试运行我的项目后出现以下错误。

Error:failed linking file resources.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

在关注what was suggested here(禁用 aapt2)之后,我遇到了一堆新错误。

Error:com.android.ide.common.process.ProcessException: Error while 
executing process DIR/build-tools/27.0.2/aapt with arguments {package -
f --no-crunch -I DIR/platforms/android-27/android.jar -M 
DIR/app/build/intermediates/manifests/full/debug/AndroidManifest.xml -S 
DIR/app/build/intermediates/res/merged/debug -m -J 
DIR/app/build/generated/source/r/debug -F 
DIR/app/build/intermediates/res/debug/resources-debug.ap_ --custom-
package com.appname -0 apk --output-text-symbols 
DIR/app/build/intermediates/symbols/debug --no-version-vectors}

Error:org.gradle.process.internal.ExecException: Process 'command 
'DIR/build-tools/27.0.2/aapt'' 
finished with non-zero exit value 1

Gradle 文件:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'io.fabric.tools:gradle:1.0'
    }
}
allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}
buildscript {
    repositories {
        repositories {
            maven { url 'https://maven.google.com' }
        }
        repositories {
            maven { url 'https://maven.fabric.io/public' }
        }
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.25.1'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

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


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile files('libs/signalr-client-sdk.jar')
    compile files('libs/signalr-client-sdk-android.jar')
    compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
        transitive = true;
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
        transitive = true;
    }
//    compile 'org.zakariya.stickyheaders:stickyheaders:0.7.6'
//    compile 'com.github.stfalcon:chatkit:0.2.2'
//    compile 'com.hbb20:ccp:2.0.3'
    compile 'net.danlew:android.joda:2.9.9'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.xw.repo:bubbleseekbar:3.6'
    compile 'com.github.pavlospt:circleview:1.3'
    compile 'com.facebook.android:facebook-android-sdk:4.29.0'
    compile 'com.amitshekhar.android:android-networking:1.0.0'
    compile 'com.android.support:support-compat:27.0.1'
    compile 'de.hdodenhof:circleimageview:2.2.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.android.gms:play-services-gcm:11.6.2'
    compile 'com.snatik:storage:2.1.0'
    compile 'com.github.tamir7.contacts:contacts:1.1.7'
    compile 'com.google.android.gms:play-services-maps:11.6.2'
    testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'

我不知道为什么它一直在发生。但是由于这个原因,应用程序中的所有 R 引用都无法解析。在更新之前我遇到了混合版本的android支持库的问题,所以我禁用了使用不同版本支持库的库,这可能是这个原因吗?

请帮忙。

【问题讨论】:

    标签: android gradle


    【解决方案1】:

    尝试将位于dependencies 部分的所有compile 术语更改为implementation

    dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation files('libs/signalr-client-sdk.jar')
    implementation files('libs/signalr-client-sdk-android.jar')
    implementation('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
        transitive = true;
    }
    implementation('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
        transitive = true;
    }
    implementation 'net.danlew:android.joda:2.9.9'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.xw.repo:bubbleseekbar:3.6'
    implementation 'com.github.pavlospt:circleview:1.3'
    implementation 'com.facebook.android:facebook-android-sdk:4.29.0'
    implementation 'com.amitshekhar.android:android-networking:1.0.0'
    implementation 'com.android.support:support-compat:27.0.1'
    implementation 'de.hdodenhof:circleimageview:2.2.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.google.android.gms:play-services-gcm:11.6.2'
    implementation 'com.snatik:storage:2.1.0'
    implementation 'com.github.tamir7.contacts:contacts:1.1.7'
    implementation 'com.google.android.gms:play-services-maps:11.6.2'
    testCompile 'junit:junit:4.12'
    }
    

    【讨论】:

    • 当我设置启用 aapt2 时,我仍然得到 failed linking references
    【解决方案2】:

    试试这个,去你的

    gradle.properties
    

    使用下面的代码

     android.enableAapt2=false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多