首页 > 解决方案 > AAPT2 错误:字符串字段“aapt.pb.String.value”在解析协议缓冲区时包含无效的 UTF-8 数据

问题描述

构建时遇到问题。日志如下:

org.gradle.execution.MultipleBuildFailures:构建完成,有 1 次失败。在 org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:358) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor $RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90) 在org.gradle 的 org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)。63) 在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 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) 原因:org.gradle .api.tasks.TaskExecutionException:任务':app:processReleaseResources'的执行失败。在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110) .api.internal.tasks.execution。130)... 6 更多原因:com.android.builder.internal.aapt.v2.Aapt2Exception:Android 资源链接失败输出:[libprotobuf 错误外部/protobuf/src/google/protobuf/wire_format_lite.cc:532] 字符串解析协议缓冲区时,字段“aapt.pb.String.value”包含无效的 UTF-8 数据。如果您打算发送原始字节,请使用“字节”类型。/Users/mac/AndroidStudioProjects/Crowdsource-android/app/build/intermediates/res/merged/release/values_values.arsc.flat:错误:读取资源表失败:解析资源表失败。错误:解析覆盖失败。解析协议缓冲区时,String.value' 包含无效的 UTF-8 数据。如果您打算发送原始字节,请使用“字节”类型。/Users/mac/AndroidStudioProjects/Crowdsource-android/app/build/intermediates/res/merged/release/values_values.arsc.flat:错误:读取资源表失败:解析资源表失败。错误:解析覆盖失败。解析协议缓冲区时,String.value' 包含无效的 UTF-8 数据。如果您打算发送原始字节,请使用“字节”类型。/Users/mac/AndroidStudioProjects/Crowdsource-android/app/build/intermediates/res/merged/release/values_values.arsc.flat:错误:读取资源表失败:解析资源表失败。错误:解析覆盖失败。

命令:/Users/mac/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/d54be48ff34f6bb6bf84364d9553ae5a/aapt2-3.2.1-4818971-osx/aapt2链接-I\ / Users/mac/Library/Android/sdk/platforms/android-28/android.jar\ --manifest\ /Users/mac/AndroidStudioProjects/Crowdsource-android/app/build/intermediates/merged_manifests/release/processReleaseManifest/merged/AndroidManifest .xml\ -o\ /Users/mac/AndroidStudioProjects/Crowdsource-android/app/build/intermediates/processed_res/release/processReleaseResources/out/resources-release.ap_\ -R\ @/Users/mac/AndroidStudioProjects/Crowdsource- android/app/build/intermediates/incremental/processReleaseResources/resources-list-for-resources-release.ap_。txt\ --auto-add-overlay\ --java\ /Users/mac/AndroidStudioProjects/Crowdsource-android/app/build/generated/not_namespaced_r_class_sources/release/processReleaseResources/r\ --proguard\ /Users/mac/AndroidStudioProjects/ Crowdsource-android/app/build/intermediates/proguard-rules/release/aapt_rules.txt\ --proguard-main-dex\ /Users/mac/AndroidStudioProjects/Crowdsource-android/app/build/intermediates/legacy_multidex_aapt_derived_proguard_rules/release/processReleaseResources /manifest_keep.txt\ --custom-package\ me.ele.crowdsource\ -0\ apk\ -c\ zh\ --output-text-symbols\ /Users/mac/AndroidStudioProjects/Crowdsource-android/app/build/中间体/符号/发布/R.txt\ --no-version-vectors 守护进程:AAPT2 aapt2-3.2.1-4818971-osx Daemon #0 at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl.doLink(Aapt2DaemonImpl.kt:177) at com.android.builder.internal.aapt.v2.Aapt2Daemon .link(Aapt2Daemon.kt:103) at com.android.builder.internal.aapt.v2.Aapt2DaemonManager$LeasedAaptDaemon.link(Aapt2DaemonManager.kt:176) at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java :823) 在 com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.doFullTask​​Action(LinkApplicationAndroidResourcesTask.java:275) 在 com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.invokeAaptForSplit(LinkApplicationAndroidResourcesTask.java:525) 在com.android.build.gradle.internal.tasks.IncrementalTask​​.taskAction(IncrementalTask​​.java:106) 在 sun.reflect。GeneratedMethodAccessor452.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod。在 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:131 ) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker。在 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174) 在 org.gradle.internal.operations.execute(DefaultBuildOperationExecutor.java:292) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor 执行(DefaultBuildOperationExecutor.java:300) .gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90) 在 org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter .executeAction(ExecuteActionsTaskExecuter.java:120) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99) ... 还有 34 个Operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java: 90) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120) 在 org.gradle.api 的 org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) .internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99) ... 还有 34 个Operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java: 90) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120) 在 org.gradle.api 的 org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) .internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99) ... 还有 34 个292) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90) 在 org.gradle.internal.operations.DelegatingBuildOperationExecutor 的 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174) .run(DelegatingBuildOperationExecutor.java:31) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter .java:99) ... 34 更多292) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90) 在 org.gradle.internal.operations.DelegatingBuildOperationExecutor 的 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174) .run(DelegatingBuildOperationExecutor.java:31) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter .java:99) ... 34 更多org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120) 在 org.gradle.api.internal.tasks 的 gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)。 execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99) ... 还有 34 个org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120) 在 org.gradle.api.internal.tasks 的 gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)。 execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99) ... 还有 34 个

这似乎是一个AAPT错误,我的gradle插件版本是3.2.1

标签: androidbuildaapt

解决方案


最后,我们在 build.gradle 中找到了解决方案

buildTypes { release { zipAlignEnabled true // pseudoLocalesEnabled true } }

我们删除 pseudoLocalesEnabled,然后它可以成功构建,但我认为不是主要原因。


推荐阅读