【问题标题】:Aapt error Android StudioAapt错误Android Studio
【发布时间】: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 中的错误。

标签: java android


【解决方案1】:

我遇到了同样的错误,我按照以下步骤来解决它。

-update all files in app.gradle its asking for. 
- update all files in build. gradle its asking for. 
- invalidate cache and restart Android studio.

当您使用 gradle 3.0 的 android 插件时,默认情况下会启用 Aapt2。 所以打开 gradle.properties 并添加 android.enableAapt2=false 如此处所示https://i.stack.imgur.com/lWyT2.png

【讨论】:

  • 它不要求任何东西。我正在使用 Gradle 4.4 和 Android Studio 3.1.1。我清除了缓存并重新启动,还从我的帐户中删除了 .gradle/cache 文件夹
  • 打开 gradle.properties 并添加 android.enableAapt2=false
【解决方案2】:

我通过重新安装我的电脑来修复它。 问题是由于我的用户名中有 ë 引起的。

【讨论】:

    【解决方案3】:

    如果您编辑了 String.xml 文件,就会发生这种情况。重置 Strings.xml

    【讨论】:

    • 你能解释更多吗?
    • 如果您手动编辑生成的 String.xml,可能会发生此错误。
    【解决方案4】:

    我想通过使缓存无效并重新启动可能会解决您的问题!

    【讨论】:

      猜你喜欢
      • 2016-03-17
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2022-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      相关资源
      最近更新 更多