【问题标题】:Project in AndroidStudio will not build after updateAndroid Studio 中的项目在更新后将无法构建
【发布时间】:2018-10-31 19:11:18
【问题描述】:

更新 AndroidStudio 后,我的一个项目没有构建。我还没有找到可行的解决方案。我试过删除不同的文件夹和缓存文件。我也尝试重新安装 android studio,但没有任何帮助。

有人遇到过同样的问题吗?

org.gradle.internal.UncheckedException: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed
Output:  /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:2430: error: <item> inner element must either be a resource reference or empty.

Command: /home/erikbylow/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-linux.jar/a3d9a3af204f4221527c5ec7986f58cd/aapt2-3.2.1-4818971-linux/aapt2 compile --legacy \
        -o \
        /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/res/merged/debug \
        /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml
Daemon:  AAPT2 aapt2-3.2.1-4818971-linux Daemon #2
Output:  /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/src/main/res/values/ids.xml:3:5-55: AAPT: error: <item> inner element must either be a resource reference or empty.

Command: /home/erikbylow/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-linux.jar/a3d9a3af204f4221527c5ec7986f58cd/aapt2-3.2.1-4818971-linux/aapt2 compile --legacy \
        -o \
        /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/res/merged/debug \
        /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml
Daemon:  AAPT2 aapt2-3.2.1-4818971-linux Daemon #2
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:63)
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:76)
    at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at 

【问题讨论】:

    标签: android-studio


    【解决方案1】:

    看看你得到的错误:

    TailoredDictFire/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:2430:错误:内部元素必须是资源引用或为空。

    AAPT2 告诉您合并值文件中第 2430 行的资源值不正确 - 它应该是资源引用或为空。如果我没记错的话,这是当您定义一个 ID 资源并将例如字符串或整数作为它的值时。它应该根本没有值,或者应该是对不同 ID(“@id/other_id”)的引用。

    查看该行中的资源。你认为它来自你的应用程序吗?如果您确实定义了它,请确保在您的值文件中修复它 (app/src/main/res/values):

    <id name="my_id">my value</id> -> <id name="my_id" />
    

    如果它来自外部库,您可以尝试通过在资源中定义具有匹配类型和名称的资源来覆盖它。

    【讨论】:

    • 实际上再次查看堆栈跟踪,我确实看到它来自您的值文件:TailoredDictFire/app/src/main/res/values/ids.xml:3:5-55。修复那里的 ID 值,你应该没问题。
    • 谢谢,我真的不知道该项目来自哪里,也许在某些时候是一个错误。我刚刚删除了它,它起作用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    相关资源
    最近更新 更多