【问题标题】:AAPT2 error: check logs for details (working on debug version but failed on release version)AAPT2 错误:检查日志以获取详细信息(在调试版本上工作,但在发布版本上失败)
【发布时间】:2019-08-04 09:34:17
【问题描述】:

我有一个运行良好的 android 应用程序,但仅在调试模式下编译时。当我尝试在发布模式下编译时,它给了我“AAPT2 错误:检查日志以了解详细信息

这是日志错误:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeReleaseResources'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)

原因:com.android.build.gradle.tasks.ResourceException:错误:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception:AAPT2 错误:查看日志了解详细信息 在 com.android.build.gradle.tasks.MergeResources.doFullTask​​Action(MergeResources.java:296) 在 com.android.build.gradle.internal.tasks.IncrementalTask​​.taskAction(IncrementalTask​​.java:106) 在 sun.reflect.GeneratedMethodAccessor256.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) 在 org.gradle.api.internal.project.taskfactory.IncrementalTask​​Action.doExecute(IncrementalTask​​Action.java:46) 在 org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) 在 org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92) ... 32 更多 原因:错误:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception:AAPT2 错误:查看日志了解详细信息 在 com.android.ide.common.res2.MergedResourceWriter.end(MergedResourceWriter.java:332) 在 com.android.ide.common.res2.DataMerger.mergeData(DataMerger.java:301) 在 com.android.ide.common.res2.ResourceMerger.mergeData(ResourceMerger.java:412) 在 com.android.build.gradle.tasks.MergeResources.doFullTask​​Action(MergeResources.java:285) ... 47 更多 Suppressed: java.lang.RuntimeException: 一些文件处理失败,详情见日志 在 com.android.builder.internal.aapt.QueuedResourceProcessor.waitForAll(QueuedResourceProcessor.java:121) 在 com.android.builder.internal.aapt.QueuedResourceProcessor.end(QueuedResourceProcessor.java:141) 在 com.android.builder.internal.aapt.v2.QueueableAapt2.close(QueueableAapt2.java:104) 在 com.android.build.gradle.tasks.MergeResources.doFullTask​​Action(MergeResources.java:293) ... 47 更多 原因:java.util.concurrent.ExecutionException:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception:AAPT2 错误:查看日志了解详细信息 在 com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503) 在 com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462) 在 com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79) 在 com.android.ide.common.res2.MergedResourceWriter.end(MergedResourceWriter.java:327) ... 50 更多 原因:java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 错误:查看日志了解详情 在 com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503) 在 com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462) 在 com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79) 在 com.android.builder.internal.aapt.v2.QueueableAapt2.lambda$compile$0(QueueableAapt2.java:136) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ... 1 更多 引起:com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 错误:查看日志了解详情 在 com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:443) 在 com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:395) 在 com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:312) 在 com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)

【问题讨论】:

  • 这不是日志 - 这是堆栈跟踪。如果您无法找到构建日志,请转到终端窗口并运行 ./gradlew :app:mergeReleaseResources
  • 还有你用的是哪个版本的android gradle plugin / android studio?

标签: java android debugging release


【解决方案1】:

AAPT2 错误解决方案。

如果您的 Android 工作室已更新。

也许,您会在工作室中遇到类似“AAPT 2 错误:查看日志了解详情”的错误

当你在你的 .xml 文件中做了一些错误的事情,比如不正确的值、找不到内容等,就会发生这个错误。

但是,那时你不会有错误规范。因为新版本的 Android Studio 并没有给你具体的错误。它给出了类似 AAPT2 的错误。

如果你想知道实际错误在哪里

按照步骤进行

  1. 查看您的 Android Studio 检查右侧的面板 退出“Gradle”标签并点击它
  2. 您将看到“应用”选项。点击它
  3. 在应用选项中你会看到[Tasks -> build] 点击它。
  4. 然后你会得到选项列表并看到“assembleDebug”双击 就可以了。
  5. 请耐心等待并查看 Android 底部面板中的构建选项卡 工作室,你会在那里得到一个特定的错误。

【讨论】:

    猜你喜欢
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    相关资源
    最近更新 更多