添加新活动时,AndroidManifest.xml中出现重复属性错误

时间:2012-07-03 20:55:39

标签: android android-intent android-manifest

我正在制作一个简单的文本字段和“发送”按钮,以显示用户在文本字段中输入的内容。该程序在android.com的Android培训教程中有完整的说明。

每当我添加活动DisplayMessageActivity时,我都会收到“重复属性”作为错误。这是代码:

<application

      <activity android.name="DroidStart"/>
      <activity
       android:name="com.start.droidstart.DisplayMessageActivity"
        android:label="@string/title_activity_droid" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

更新:我修复了指出的问题,但我仍然收到错误。这是我目前的AndroidMainfest.xml:

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

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
      <activity
       android:name="DroidStart"
       android:name="com.start.droidstart.DisplayMessageActivity"
       android:label="@string/title_activity_droid" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

错误看起来像这样

  

解析XML时出错;重复属性。输入Android AAPT问题。

5 个答案:

答案 0 :(得分:1)

您至少有两个错误:

  1. 请务必关闭<application>代码。
  2. 使用android:name,而不是android.name
  3. 所以前3行应改为:

    <application
    
          <activity android.name="DroidStart"/>
    

    <application>
    
          <activity android:name="DroidStart"/>
    

    <强>更新

    在更新后的代码中,您有:

      <activity
       android:name="DroidStart"
       android:name="com.start.droidstart.DisplayMessageActivity"
    

    您正在使用android:name两次,这就是您收到此错误的原因。您应该将其更改为:

      <activity
       android:name=".DisplayMessageActivity"
    

    假设DisplayMessageActivity是要引用的活动的类名。

    最后,您忘记了manifest结束标记:您的文件末尾应该有</manifest>

答案 1 :(得分:1)

我的问题是工具:替换重复。 固定简单:

tools:replace="android:label,android:theme">

答案 2 :(得分:0)

变化

android.name

android:name

在第一行...

答案 3 :(得分:0)

对于instantapp项目,还要检查你有

xmlns:android = "http://schemas.android.com/apk/res/android"

在清单标记中的app AndroidManifest.xml中。

答案 4 :(得分:-1)

使用

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

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

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

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

</manifest>

而不是

<application
    <activity android.name="DroidStart"/>

您使用"android.name"代替"android:name"来声明清单中的活动,并将第一个应用标记关闭为<application>