AndroidManifest.xml必须很好地形成根元素后面的文档中的标记

时间:2012-07-26 11:33:35

标签: android xml

我有Eclipse生成一个基本的Android Hello World应用程序,但它有2个错误:首先,在我的AndroidManifest.xml中这两行:
  我得到了文档中的标记,因为根元素必须格式良好,无论我清理项目多少次,我的R.java都不会生成。任何答案?

清单在这里:http://jsfiddle.net/NHDU6/

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

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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


<!--
     Declare the contents of this Android application.  The namespace
     attribute brings in the Android platform namespace, and the package
     supplies a unique name for the application.  When writing your
     own application, the package name must be changed from "com.example.*"
     to come from a domain that you own or have control over.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jfkingsley.maclogin" >

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />

    <application
        android:icon="@drawable/ic_launcher_home"
        android:label="@string/home_title" >
        <activity
            android:name="Home"
            android:launchMode="singleInstance"
            android:stateNotNeeded="true"
            android:theme="@style/Theme" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="Wallpaper"
            android:icon="@drawable/bg_android_icon"
            android:label="Wallpaper" >
            <intent-filter>
                <action android:name="android.intent.action.SET_WALLPAPER" />

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

</manifest>

谢谢,Jonathan

7 个答案:

答案 0 :(得分:1)

可能是您遗漏了某些内容,但有时会进行简单的代码重新格式化:CTRL + SHIFT + F,可以解决问题。

答案 1 :(得分:1)

这是你的清单,

您不应指定多个Manifest,也不应指定多个<application>代码。

 <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.jfkingsley.maclogin" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="h" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="Home"
            android:launchMode="singleInstance"
            android:stateNotNeeded="true" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="Wallpaper"
            android:icon="@drawable/ic_launcher"
            android:label="Wallpaper" >
            <intent-filter>
                <action android:name="android.intent.action.SET_WALLPAPER" />

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

</manifest>

答案 2 :(得分:0)

我看了你的清单文件。导致该错误是因为您有<manifest />标记的2个声明。

首先是:

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

接下来是一些评论,另一个宣言开始:

<!--
     Declare the contents of this Android application.  The namespace
     attribute brings in the Android platform namespace, and the package
     supplies a unique name for the application.  When writing your
     own application, the package name must be changed from "com.example.*"
     to come from a domain that you own or have control over.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jfkingsley.maclogin" >

    <uses-permission android:name="android.permission.CALL_PHONE" />

你要么忘记评论其中一个清单标签,混淆某些内容,要么关注错误的教程。 AndroidManifest文件应该只有一个<manifest />标记

答案 3 :(得分:0)

自动生成的AndroidManifest.xml文件本身存在一些问题。里面有两个manifest标签和两个uses-sdk标签。那就是问题所在。做如下: 1-删除第一个清单标记的结束标记,即: </manifest> 2-删除第二个清单标记的定义标记:

<manifest 
xmlns:android="http://schemas.android.com/apk/res/android"
package="net.learn2develop.fragments"
android:versionCode="1"
android:versionName="1.0" >

3-如果有两个uses-sdk标记,也删除第二个uses-sdk标记。

答案 4 :(得分:0)

我向我的应用程序添加了一个新活动,之后出现了此错误。清单完全从android-studio中消失了。 我必须使用文本编辑器来编辑清单。看来,当我添加新活动时,Android Studio创建了一个新标签,然后在清单文件中添加了新活动标签,而不仅仅是在清单中添加了带有新活动的标签。 更新清单后,项目运行正常。

答案 5 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>

<activity
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"/>
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main"
        android:theme="@style/AppTheme.NoActionBar"/>
    <activity
        android:name=".SignUp"
        android:label="@string/title_activity_sign_up"
        android:theme="@style/AppTheme.NoActionBar"/>

        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

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

</activity>
</application>

答案 6 :(得分:-1)

/&GT;不应该在文件的末尾我有同样的问题错误意味着xml文件格式不正确你应该尝试删除&前面的&或者只是重新格式化