7

我正在尝试使用 Android Studio 3.0.1 运行“hello world”应用程序并获得以下 AAPT2 错误输出:

Error:(16) error: not well-formed (invalid token).
Error:(16) not well-formed (invalid token).
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details...

我无法找到解决方案,有人可以帮助我吗?

4

8 回答 8

6

android.enableAapt2=false不要执行此步骤来暂时隐藏问题。Aapt1 将很快被弃用,而 Aapt2 必须在 2018 年底之前使用。

这只是 gradle 构建工具的一个问题。只需更新您的 gradle 和 gradle 工具。

我在项目级别 gradle 的依赖标记内使用类路径 'com.android.tools.build:gradle:3.3.0-alpha02'',并且我使用的是 gradle 版本 4.8 。这为我解决了这个问题。

附加 禁用即时运行,如果这没有为您解决

于 2018-07-06T04:52:42.670 回答
2

来自 AAPT2 的“格式不正确”错误意味着您的一个 XML 文件格式不正确,可能缺少右括号或类似内容。在错误上方,它应该说明它来自哪个文件。看看你的 res/ 目录和里面的文件。

于 2018-02-05T11:26:41.490 回答
0

这对我有帮助。在 build.gradle(Module:app) 中添加这些

defaultConfig {
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
}
于 2019-05-10T17:56:55.087 回答
0

我有同样的问题,我改变了

compileSdkVersion 22 到 compileSdkVersion 25

targetSdkVersion 22 到 targetSdkVersion 25

实现 'com.android.support:appcompat-v7:22' 到实现 'com.android.support:appcompat-v7:25'

这解决了我的问题。

于 2018-09-10T09:31:08.000 回答
0

这是老问题,似乎没有人提供找到 AAPt2 错误的正确方法

AAPT2 错误:查看日志以获取详细信息

每种情况都会有所不同。

所以找到正确的错误,你应该按照这里的建议运行 assembelDebug

参考下图运行 assembleDebug。

在此处输入图像描述

在我的情况下,实际上损坏了 png 文件,并且仅在发布版本时失败。所以我必须运行 assembleRelese 才能找到该问题。

于 2018-10-18T09:58:28.203 回答
0

禁用 Instant Run,它可能对您有用。对我来说它有效

于 2018-03-30T05:43:40.547 回答
0

在你gradle.properties添加这一行android.enableAapt2=false

于 2018-02-05T11:28:14.130 回答
0

就我而言,解决方案有点棘手和有趣。我有RelativeLayoutaTextView和 a ProgressBar。位于Progressbar顶部TextView,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1"
    tools:context="com.caoa.yakokoe.yakokoe.ui.splash.SplashActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.5">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:contentDescription="@string/content_desc_logo_green"
            android:src="@drawable/logo_green" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.5">

        <ProgressBar
            android:id="@+id/splash_progress_bar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/splash_text"
            android:layout_centerHorizontal="true"
            android:indeterminate="true"
            android:visibility="gone" />

        <TextView
            android:id="@+id/splash_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="24dp"
            android:layout_marginTop="16dp"
            android:text="@string/splash_text_default"
            android:textAlignment="center"
            android:visibility="gone" />
    </RelativeLayout>
</LinearLayout>

这引发了一种错误(忘记了它是什么,但它在“找不到 layout_above 的 id”的行中)。

解决方案是简单地翻转ProgressBarTextView位置,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1"
    tools:context="com.caoa.yakokoe.yakokoe.ui.splash.SplashActivity">

    <!-- Content here -->

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.5">

        <TextView
            android:id="@+id/splash_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="24dp"
            android:layout_marginTop="16dp"
            android:text="@string/splash_text_default"
            android:textAlignment="center"
            android:visibility="gone" />

        <ProgressBar
            android:id="@+id/splash_progress_bar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/splash_text"
            android:layout_centerHorizontal="true"
            android:indeterminate="true"
            android:visibility="gone" />
    </RelativeLayout>
</LinearLayout>
于 2018-04-27T20:59:32.710 回答