Android清单文件属性不允许在此处使用。

29

我有关于一些属性的几个清单错误。我没有对应用程序自动生成的清单进行任何更改,但我仍然得到了几个错误。(我正在使用 Android Studio 1.2.2)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.iustinian.girlfriendsolver"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="22" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.iustinian.girlfriendsolver.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
-对于xmlns:android属性,我收到了“URL未注册”。 -对于android versionCode、versionName、allowBackup、label和theme,我收到了“此处不允许使用属性”。 我查看了清单文档,但没有找到答案。例如,allowBackup属性的位置与文档中指定的完全相同。 编辑:在进一步查找后,我发现在android:theme“@style/AppTheme”处,我得到了一个没有资源与给定名称匹配的结果。这是Gradle构建中唯一显示的内容。我已经多次清理并重建了项目。

4
你最近是否换用了Android Studio/Gradle? - Michael Krause
你使用的是哪个集成开发环境?我建议你尝试清理项目并重新构建,这通常可以解决这些奇怪错误。如果这不起作用,请告诉我! - ryguy
我刚开始使用Android Studio并尝试制作Android应用程序。我之前没有在Eclipse中进行过任何项目,因此不能说从一个平台迁移到另一个平台可能会出现问题。 - Iustinian Olaru
2
曾经在清单文件中指定的某些属性现在应该在build.gradle文件中指定。这些属性包括versionCode、versionName、minSdkVersion和targetSdkVersion。如果您已经在build.gradle文件中设置了这些属性,那么可以安全地从清单文件中删除它们。 - Michael Krause
那解决了“此处不允许属性”错误。现在我只剩下@style/AppTheme问题了。谢谢。 - Iustinian Olaru
我还注意到,尽管Michael Krause指定的属性确实不在正常的AndroidManifest.xml文件中,但是当我尝试运行应用程序时,它们仍然会出现在debug/AndroidManifest.xml文件中。 - Iustinian Olaru
13个回答

74

只需关闭您的清单文件,然后重新打开即可。这对我起作用了。


2
真的。我也解决了。 - Mitulát báti
2
是的,对我有用,谢谢!现在这些天,在尝试重新打开之前我们先去Stack Overflow上查了一下,真是太神奇了。 - Adamz
1
最简单的答案,哈哈,谢谢! - Victor Hugo Montes
2
从未如此轻松解决问题。 - Murli
1
它对我不起作用。在构建文件夹中生成的清单文件出现了问题。一切都变成了橙色。还不知道如何修复。请帮忙。 - K.Sopheak
1
我见过的最简单的解决方案! - Sam Joshua

14

在我的情况下,关闭 AndroidManifest.xml 并选择 文件 > 使缓存无效 / 重新启动 解决了这个问题。

不确定为什么我还需要进行最后一步,但它为我解决了所有这些错误。


这个解决了我的问题。谢谢。 - Dev.Sinto
在Android Studio上对我有用,谢谢。 - undefined

10

关闭AndroidManifest — 文件 — 与Gradle文件同步。这样做有帮助。

P.S. 几个月后我又遇到了这个问题,谷歌搜索并找到了这个答案,但是没用! :D 但这次我卸载了Android Studio并安装了beta版本,这样做有帮助。


6

在Android Studio中,只需关闭Manifest文件,然后再次打开即可解决此问题。顺便说一句,Studio会给出太多像这样的愚蠢错误。


4
针对你遇到的“不允许在此处使用的属性”问题,versionCodeversionNameallowBackup必须放置在build.gradle文件中而非Android清单中,这样应该就能解决问题了。
其次,针对你遇到的“@style/AppTheme找不到匹配资源名称”的问题,你需要检查一下styles.xml文件,确保那里存在着一个名为AppTheme的风格。
希望本回答能够帮助你或其他阅读者。

3
当AndroidStudio没有正确“识别”清单时,便会发生这种情况:清单文件位于app/src/main/AndroidManifest.xml,但在合成的AS Android/app/manifests树左视图中未显示。

只需关闭项目+从(欢迎)列表中删除+重新导入项目(Gradle、Eclipse ADT等)。

1
你好!能否再详细说明一下?“(welcome)list”是什么意思?“re-import_project”又是指什么? - Karolina Hagegård
你好!您能否详细说明一下? "(welcome)list" 是什么意思?"re-import_project" 是什么意思? - Karolina Hagegård

3
在Android Studio中,选择“文件”->“与Gradle文件同步项目”可以帮助我解决这个问题。

2

关闭Android Studio,打开应用程序文件夹中的AndroidManifest.xml,在任何本地编辑器(例如Notepad、Notepad++、sublime等)中进行更改并保存清单文件。现在重新打开Androdistudio。您的问题将得到解决。


1
很可能,您正在修改错误的Manifest.xml文件。 当您尝试运行代码时,它会创建临时文件,这可能是您正在编辑的文件。

0

这个方法帮助了我

File => invalidate Caches

已经发布了相同的答案,请跳过重复的答案。 - Rajesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接