Android Studio 3.0 清单错误:发现未知元素

2023-12-01

NOTICE:请不要发布此内容“android.enableAapt2 = false”作为答案。这是not一个办法。它只是忽略真正的错误,不会在运行时造成任何问题。

解决办法很简单,只要去掉错误放置的即可动作标签在清单文件中的意图过滤器之外。

有一个由 Android Studio 2.3 构建的应用程序。 更新Android Studio 3.0后Stable,开始出现此错误并且无法构建我的项目。

这是我的manifest.xml

<application
    android:name=".ApplicationClass"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <!--other unrelated stuff-->

    <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

    <receiver
        android:name="com.google.android.gms.gcm.GcmReceiver"
        android:exported="true"
        android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.xxx.xxx" />
        </intent-filter>
    </receiver>
</application>

错误显示这一行:

<action android:name="com.google.android.c2dm.intent.REGISTRATION" />

如果我评论/删除此操作标记行,该项目可以正常构建,但这是必要的GCM我无法删除它。

正如您看到的日志,错误不会出现在 main 处清单文件,位于 /build/intermediates/manifests/full/debug/AndroidManifest.xml

尝试过清理、重建、禁用即时运行。有什么解决办法吗?

错误日志:

/THE_PROJECT_PATH/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
Error:(99) error: unknown element <action> found.
Error:(99) unknown element <action> found.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'.
> Failed to execute aapt
Information:BUILD FAILED in 1s
Information:6 errors
Information:0 warnings
Information:See complete output in console

你的标签放错地方了。新的 AAPT (AAPT2) 现在会对此抛出错误。

从这里的文档:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

使用 AAPT2 时行为发生变化


为了改进增量资源处理,Android 插件 3.0.0 默认启用 AAPT2。尽管 AAPT2 应该立即适用于较旧的项目,但本节描述了您应该注意的一些行为更改。

Android 清单中的元素层次结构

在 AAPT 的早期版本中,嵌套在 Android 清单中不正确节点中的元素要么被忽略,要么导致警告。例如,考虑以下示例:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.myname.myapplication">
   <application
       ...
       <activity android:name=".MainActivity">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
           <action android:name="android.intent.action.CUSTOM" />
       </activity>
   </application>
</manifest>

以前版本的 AAPT 会简单地忽略放错位置的标签。但是,使用 AAPT2 时,您会收到以下错误:

AndroidManifest.xml:15: error: unknown element <action> found.

要解决此问题,请确保清单元素正确嵌套。欲了解更多信息,请阅读清单文件结构.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio 3.0 清单错误:发现未知元素 的相关文章

随机推荐

  • Git 中的“一棵树”是什么意思?

    的联机帮助页git diff says it NAME git diff 显示提交 提交和工作树等之间的更改 描述 显示之间的变化工作树和索引或a tree 指数和之间的变化a tree 之间的变化两棵树 两者之间的变化斑点对象 或磁盘上两
  • 访问.cs文件中声明的Web方法不与ajax(jquery)中的任何aspx或ascx文件关联

    您好 我将一个 Web 方法从 aspx 页面的代码隐藏文件移动到数据部分中存在的另一个 cs 文件 不包含任何 aspx 页面 以前我使用Ajax访问web方法 url像 type post contentType application
  • sqlite:别名列名不能包含点“.”

    抱歉我的英语不好 如果您在 sqlite 数据库上尝试此选择操作 从表中选择列 AS 别名 1 您将获得预期的列名称 alias 1 result 1 result 2 但如果您的别名包含一个点 你得到了错误的列名 从表中选择列 AS al
  • HTML 5 - iOS 上的输入类型日期格式

    我在 iPhone 上使用 HTML 5 表单 该表单有一个如下所示的输入元素
  • 为什么按 Enter 键后 scanf 将控制权返回给程序?

    我写了下面的程序 void main int piarrNumber1 int calloc 1 sizeof int int iUserInput 0 scanf d iUserInput piarrNumber1 sizeof piar
  • 在 Less 循环中构建重复选择器

    我已经看到了 LESS 中循环的各种方法 但我还没有找到构建选择器的方法 我猜聚合是正确的术语 例如 我想要这样的东西 staticClass repeatedClass repeatedClass gt finalStaticClass
  • xmlns 属性中命名空间的值

    我看到下面的文档使用了 2 个命名空间
  • 我如何在响铃时检索来电号码并将其存储在android中的变量中?

    我对 Android 相当陌生 我希望我的应用程序能够在响铃时检索来电者的电话号码并存储它 我怎样才能做到这一点 您需要使用广播接收器 它应该看起来像这样 public class CallReceiver extends Broadcas
  • 如何在 Apache Camel JPA 中通过标头传递namedQuery参数?

    我有这条骆驼路线 from direct getUser pollEnrich jpa User namedQuery User findById consumeDelete false 这是我的用户实体 Entity NamedQueri
  • 使用Spring和Maven时,将代码部署到服务器的最佳方式是什么?

    我有一个使用 Spring 的项目 每次部署时 我都会运行 Maven 目标 package 它运行所有测试并创建 war 文件 然后我手动使用ftp程序将war文件复制到服务器 然后我运行 bash 脚本来关闭服务器 替换 war 并再次
  • Android AlarmClock 按标签搜索

    我想使用意图android provider AlarmClock消除 ACTION DISMISS ALARM 特定警报 我想使用 ALARM SEARCH MODE LABEL 来选择警报 但是 我不知道如何设置要搜索的标签 Inten
  • jquery:查找一个元素下面的元素

    我正在使用 jquery 创建一个简单的应用程序 在这个应用程序中我可以沿着文档拖动一个元素 DIV 我可以将 DIV 放置在文档中的任何位置 如果我将此 DIV 放置在另一个元素上方 我如何找出拖动对象下方元素的 ID 是什么 例如 如果
  • 集成测试前启动 Apache tomcat 服务器

    过去 4 天我一直在寻找解决方案 并作为赏金提出了这个问题 但仍然没有得到答案 我在 pf pom xml 文件的帮助下取得了成功 a 使用命令手动启动 tomcat 服务器 即 mvn tomcat7 run 该命令还 帮助我将 war
  • C# 中的 Curl -F 等效项

    我正在尝试使用 C 中的 HTTPClient 对象向 API 发送发布请求 这是 CURL 命令 curl X POST https zzz zzz zzz yyy F Key abcd F media audio aac 我写了以下代码
  • UITextView 富文本?

    我想知道 UITextView 是否可以显示富文本 我想对只读文本进行简单的格式化 例如文本不同部分的不同对齐方式 如果没有 我应该使用什么视图 一般来说 最好的方法是使用 UIWebView 并加载本地内容 您可以在其中插入标签和您需要的
  • 告诉 cin 在换行处停止阅读

    假设我想从输入中读取 a 行整数 如下所示 1 2 3 4 5 n 我希望 cin 停在 n 字符处 但 cin 似乎无法识别它 下面是我用过的 vector
  • 用于检查 WooCommerce 中的product_type 的 SQL 查询

    我想通过以下方式过滤 WooCommerce 中的产品简单或可变的产品通过MySQL 但我找不到 WooCommerce 如何存储数据并在数据库中区分它们 我想要一个 MySQL 查询来列出所有简单和可变产品 我不需要任何 PHP 代码 就
  • Django value_list 与值

    在Django中 以下两者有什么区别 Article objects values list comment id flat True distinct versus Article objects values comment id di
  • 加载 Facebook 像素异步

    我正在加载 Facebook Pixel 并收到错误 因为调用时未加载脚本 它看起来是这样的 function Load3rdPartyScripts function f b e v n t s if f fbq return n f f
  • Android Studio 3.0 清单错误:发现未知元素

    NOTICE 请不要发布此内容 android enableAapt2 false 作为答案 这是not一个办法 它只是忽略真正的错误 不会在运行时造成任何问题 解决办法很简单 只要去掉错误放置的即可动作标签在清单文件中的意图过滤器之外 有