【发布时间】:2018-04-16 11:11:27
【问题描述】:
我的所有 Android 项目都出现 Aapt 错误。 在搜索我发现使用 android.enableAapt2=false 的解决方案时可能会有所帮助,但我经常遇到类似的错误;
Caused by: java.util.NoSuchElementException
at com.google.common.collect.AbstractIndexedListIterator.next(AbstractIndexedListIterator.java:80)
at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:315)
at com.google.common.collect.Iterables.getOnlyElement(Iterables.java:263)
at com.android.builder.internal.aapt.v1.AaptV1.makePackageProcessBuilder(AaptV1.java:202)
at com.android.builder.internal.aapt.AbstractProcessExecutionAapt.makeValidatedPackage(AbstractProcessExecutionAapt.java:67)
at com.android.builder.internal.aapt.AbstractAapt.link(AbstractAapt.java:34)
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:807)
... 56 more
我已经重新安装了 Android Studio、Android SDK 并尝试删除我的设置文件。 当我不使用 android.enableAapt2=false 我得到 p>
Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
Caused by: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
at com.android.builder.internal.aapt.v2.QueueableAapt2.lambda$compile$0(QueueableAapt2.java:136)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... 1 more
Caused by: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
at com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:443)
at com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:395)
at com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:312)
at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)
我正在使用 Android Studio 3.1.1 版本 173.4697961。
编辑:我也尝试清理项目,以及运行 .gradlew clean、rebuild 等。
编辑:我使用的是 Gradle 4.4 和 Android Studio 3.1.1。我清除了缓存并重新启动,还从我的帐户中删除了 .gradle/cache 文件夹
【问题讨论】:
-
您是如何重新安装 Android Studio 和 SDK 的?安装前是否删除了与这两个相关的所有文件?
-
是的,我做到了。我删除了我的 SDK 文件夹、我的 Android Studio 设置并卸载了 Android Studio。重新启动并下载所有内容以再次安装它
-
第一个是调用AAPT1的bug。您不应该禁用 AAPT2,因为 AAPT1 很快就会被禁用。为了能够找到您在使用 AAPT2 时遇到的问题,您需要粘贴完整的构建日志以及 AAPT2 中的错误。