android - 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.doFullTaskAction(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
解决方案
最后,我们在 build.gradle 中找到了解决方案
buildTypes {
release {
zipAlignEnabled true
// pseudoLocalesEnabled true
}
}
我们删除 pseudoLocalesEnabled,然后它可以成功构建,但我认为不是主要原因。
推荐阅读
- unit-testing - 测试通过,但之后给出断言错误
- javascript - 如何将使用 ES6 代码创建的对象推送到 javascript 中的数组中
- ios - 以编程方式将系统图像添加到导航栏
- python - 我该如何优化这个 python 循环?
- architecture - 内存更改后何时更新持久层?
- vue.js - 如何在页面加载时在 vue 中呈现来自 Firebase 的数据
- c# - 让连字在 SharpDX/DirectWrite 中工作
- typo3 - 是否可以截断 sys_file_processedfile?
- java - 如何通过回调方法将点击位置的item传回Activity
- laravel - 当我尝试将数据提交到 db 时,我不断收到违反完整性约束的情况