更新gradle和Android studio版本后无法链接资源

时间:2017-12-07 15:04:23

标签: android gradle

在我更新到android studio 3和gradle 3.0.1之前,我可以毫无问题地构建我的项目,但自从我更新后我一直收到这个错误:

7, 5, 3, 6, or 4
1 or 2

我试图禁用AAPT2 但是我收到错误的ProcessException for aapt

Error:failed linking references.
    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
    Error:Execution failed for task ':app:processDebugResources'.
            > Failed to execute aapt

我试图将编译改为实现和api但是他们都给了相同的错误。有人可以帮我解决这个问题......

这是我的gradle文件:

Error:java.util.concurrent.ExecutionException: 
com.android.ide.common.process.ProcessException: Error while executing 
process /build-tools/26.0.2/aapt with arguments {package -f --no-crunch 
-I /android-25/android.jar -M 

4 个答案:

答案 0 :(得分:0)

使用构建工具26.0.2或更高版本。

Android Plugin for Gradle Release Notes

  

3。0。0(2017年10月)

     

此版本的Android插件需要以下内容:
  Gradle 4.1或更高版本   构建工具26.0.2或更高版本。

注意:3.0.0是Gradle插件的一个版本(在项目的build.gradle中) 4.1是Gradle的一个版本(在gradle-wrapper.properties中)。

有关信息:AAPT2相关问题

  • 损坏的清单
    注意:禁用AAPT2后也会出现问题,因此这些可能不适用于您的情况。

My Android manifest is full of errors after updating to Android 3.0.0 [duplicate]
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

  

Android清单中的元素层次结构

     

在以前版本的AAPT中,嵌套在Android清单中错误节点中的元素会被忽略或导致警告。

  • gradle文件夹路径中的非ASCII或''(空格)字符
    注意:在这种情况下升级之前也会出现同样的问题,我认为。

…com.android.tools.aapt2.Aapt2Exception:.AAPT2 error:check logs for details
Android Studio 3.0 migration AAPT2 error

答案 1 :(得分:0)

试试这个

  

转到questions = Question.objects.annotate(question_set_count=Count('questionset')).filter(question_set_count__gte=2)

编写以下代码并同步项目

gradle.properties

答案 2 :(得分:0)

有时 xml文件可能会导致问题 像style属性错误或.... 就我而言,styles.xml中存在无效的xml attr。

答案 3 :(得分:0)

在我的情况下,问题是我对正在使用的行进行了注释,因此当编译器试图找到它时,该错误就会反弹。