Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio 3.0清单错误:未知元素<;行动>;建立_Android_Android Manifest_Aapt - Fatal编程技术网

Android Studio 3.0清单错误:未知元素<;行动>;建立

Android Studio 3.0清单错误:未知元素<;行动>;建立,android,android-manifest,aapt,Android,Android Manifest,Aapt,注意:请不要将此发布为“android.enableApt2=false”作为答案。这不是一个解决方案。它只是忽略了真正的错误,而这并不会在运行时造成任何问题 解决方案很简单,只是删除了错误放置在清单文件中意图过滤器外部的操作标记 拥有一个由AndroidStudio 2.3构建的应用程序。 在更新Android Studio 3.0稳定版之后,开始出现此错误,无法构建我的项目 这里是我的manifest.xml <application android:name=".Applic

注意:请不要将此发布为“android.enableApt2=false”作为答案。这不是一个解决方案。它只是忽略了真正的错误,而这并不会在运行时造成任何问题

解决方案很简单,只是删除了错误放置在清单文件中意图过滤器外部的操作标记

拥有一个由AndroidStudio 2.3构建的应用程序。 在更新Android Studio 3.0稳定版之后,开始出现此错误,无法构建我的项目

这里是我的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>

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

从这里的文档:

使用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>


将此代码添加到根项目的gradle.properties中:

android.enableAapt2=false
这对我有用

root 
| 
|--gradle.properties

为了总结和简化:您应该只关注主AndroidManifest.xml文件,并检查它是否严格按照中所述的顺序以及xml标记的嵌套。否则,IDE将打开调试级别AndroidManifest.xml,在每次尝试清理/构建项目时都会显示大量错误,这会让您感到困惑

只需像这样重命名清单文件:AndroidManifest.xmlold,然后创建一个新的XML文件并命名为:AndroidManifest.XML。然后,在删除带有标记的行之后,只需复制旧文件的内容。构建>清理项目,然后再次运行>调试应用程序。然后问题就消失了

我们已经找到了这个问题的解决方案,解决方案是服务总是以
当我们在
之外编写代码时,就会出现问题。服务是清单中应用程序的子部分。。。
可以它肯定会起作用。请按以下步骤将操作内容放入意向筛选器中



在我的应用程序中,AndroidManifest.xml标记接收器位于应用程序标记下,这是生成失败的原因,消息为
../android/app/build/intermediates/manifests/full/debug/AndroidManifest.xml:25:AAPT:error:找到未知元素
。在我把它放进应用程序标签之后,项目就被成功编译了。仅此而已

我最近在gradle.properties上进行了此修复,但一条警告说“选项'android.enableapt2'已被弃用…”不断出现,解决方案是将其改为true。

为什么在
之外有一个
?@MikeM。这是一个旧项目,这些规范保留在旧指南中。它工作正常,没有任何错误。经过深入研究,发现不再需要使用它,而且它放错了位置,所以将其删除。您是否升级了distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip?@ImenNmn已经升级了,在删除操作标签后,问题似乎暂时解决了。幸好顶部有免责声明。竖起大拇指这只会让现有的错误看不见,而不是一个实际的解决方案。Aapt2实际上很有用,我不想禁用它。有没有办法在不禁用Aapt2的情况下更新gradle版本?Android studio说:
选项“Android.enableApt2”已被弃用,不应再使用。使用“android.enableApt2=true”删除此警告。它将在2018年底被删除。
谢谢!从未意识到我忘记了我行动的意图过滤器。但是错误消息可能会好一点,可能会包含文档中的一些信息。对于这种情况,您应该更改GCM设置:或者使用FirebaseIt不是解决方案。如果不解决真正的问题,它将不起作用。这是正确的答案,但对我来说很有效。我以前也有同样的问题。我的清单文件上有一个明显的错误。我修好了,问题解决了。不需要重命名或复制清单文件。问题是关于标记的,它似乎与您提供的标记答案无关。作者通过删除标签解决了这个问题。
AndroidManifest.xml:15: error: unknown element <action> found.
android.enableAapt2=false
root 
| 
|--gradle.properties
<intent-filter>
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
 </intent-filter>