在阶段应用程序构建android错误:mergeDebugResources,ParseError AttributeNSNotUnique
Posted
技术标签:
【中文标题】在阶段应用程序构建android错误:mergeDebugResources,ParseError AttributeNSNotUnique【英文标题】:Build android error at stage app:mergeDebugResources, ParseError AttributeNSNotUnique 【发布时间】:2021-09-12 10:07:06 【问题描述】:我一直在尝试使用 Gradle 4.2.1 在 android Studio 4.2 上构建我的 Android 应用程序,但我遇到了以下错误,我只能找到 one question one month ago 和 today 的另一个错误也没有解决。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.res.ResourceCompilerRunnable
> Resource compilation failed. Check logs for details.
* Try:
Run with --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResources'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:200)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:198)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:179)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
... 12 more
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.res.ResourceCompilerRunnable
at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:336)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:142)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:94)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:80)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:68)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:563)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
... 93 more
Caused by: com.android.aaptcompiler.ResourceCompilationException: Resource compilation failed. Check logs for details.
at com.android.aaptcompiler.ResourceCompiler.compileResource(ResourceCompiler.kt:121)
at com.android.build.gradle.internal.res.ResourceCompilerRunnable$Companion.compileSingleResource(ResourceCompilerRunnable.kt:31)
at com.android.build.gradle.internal.res.ResourceCompilerRunnable.run(ResourceCompilerRunnable.kt:15)
at com.android.build.gradle.internal.profile.ProfileAwareWorkAction.execute(ProfileAwareWorkAction.kt:74)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
... 10 more
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[22,347]
Message: http://www.w3.org/TR/1999/REC-xml-names-19990114#AttributeNSNotUnique?androidx.constraintlayout.widget.ConstraintLayout&layout_width&http://schemas.android.com/apk/res/android
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652)
at java.xml/com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:83)
at com.android.aaptcompiler.XmlProcessor.process(XmlProcessor.kt:116)
at com.android.aaptcompiler.ResourceCompiler.compileXml(ResourceCompiler.kt:267)
at com.android.aaptcompiler.ResourceCompiler.access$compileXml(ResourceCompiler.kt:1)
at com.android.aaptcompiler.ResourceCompiler$getCompileMethod$2.invoke(ResourceCompiler.kt:143)
at com.android.aaptcompiler.ResourceCompiler$getCompileMethod$2.invoke(ResourceCompiler.kt)
at com.android.aaptcompiler.ResourceCompiler.compileResource(ResourceCompiler.kt:118)
... 29 more
BUILD FAILED in 2s
17 actionable tasks: 1 executed, 16 up-to-date
已编辑:这是我合并的 AndroidManifest.xml 文件,它看起来像这样没有依赖关系,但消息错误仍然保持不变并且在同一行 [22,347]:
我还查看了我所有的 *.xml 文件,从布局到值,并且 android studio 已经验证了它们,所以我不明白异常。
与Parse Error相关的部分:
留言:http://www.w3.org/TR/1999/REC-xml-names-19990114#AttributeNSNotUnique?androidx.constraintlayout.widget.ConstraintLayout&layout_width&http://schemas.android.com/apk/res/android
让我觉得我的布局有问题,但 IDE 说它们很好并且可以正常渲染。
对 build.gradle 的依赖(上图显示了被注释掉后的清单):
dependencies
implementation fileTree(dir: "libs", include: ["*.jar"])
// Core
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.annotation:annotation:1.2.0'
// Singleton
implementation group: 'javax.inject', name: 'javax.inject', version: '1'
// Lifecycle
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
// UI
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.navigation:navigation-ui:2.3.5'
// Room
implementation 'androidx.room:room-runtime:2.3.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
testImplementation 'junit:junit:4.12'
annotationProcessor 'androidx.room:room-compiler:2.3.0'
// Navigation
implementation 'androidx.navigation:navigation-fragment:2.3.5'
// Lombok
compileOnly "org.projectlombok:lombok:1.18.12"
annotationProcessor "org.projectlombok:lombok:1.18.12"
// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
// JSON
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
// Logging
implementation 'com.jakewharton.timber:timber:4.7.1'
【问题讨论】:
这可能是暂时的依赖问题吗?您要导入哪些依赖项? @WardVanlerberghe 我将它们添加到问题中,同时我正在尝试删除每个并重新构建项目。 乍一看,我在您的依赖项中看不到任何问题。您是否尝试过“无效缓存”?我最近不得不做很多事情来解决类似的问题。 感谢您的帮助,我找到了问题。 【参考方案1】:这个问题的答案是,error和stacktrace其实是两个不同的问题。
我的一个 xml 布局有问题,是的,但最大的问题是 gradle 4.2.1 版本混淆了如何找到问题。
因此,如果您想真正了解失败的原因,将您的 gradle 降级到 4.1.3,然后 gradle 现在会告诉您您的 xml 哪里出错了。无论您遇到什么错误,我都建议您这样做,无论是解析错误、资源错误还是序言错误。
现在,对于实际的异常,Android Studio 不会检测到属性何时在
【讨论】:
我想添加评论以防它对某人有所帮助。我遇到了这个问题,是的,它是 XML,但是这个错误非常小而且很容易错过。我的一个strings
说don't
应该是don\'t
。【参考方案2】:
就我而言,这是布局标签的问题。我在其中使用了 layout_width 和 layout_height ,因此它给了我同样的错误。
因此,任何使用数据绑定的人都会仔细检查这一点,并检查您是否对不同的布局使用相同的 id。
【讨论】:
谢谢。我遇到了同样的问题。 非常感谢!布局标签内的 layout_width 和 layout_height 标签导致了这个问题。以上是关于在阶段应用程序构建android错误:mergeDebugResources,ParseError AttributeNSNotUnique的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Gradle 构建机制 ④ ( Gradle 构建生命周期 | 初始阶段 | 配置阶段 | 执行阶段 )
`node cordova/lib/copy-www-build-step.js`在构建阶段时出现cordova构建错误
android <merge /> 只能与有效的 ViewGroup 根和 attachToRoot=true 一起使用,尽管没有合并