【问题标题】:"Tag <Activity > attribute name has invalid character ' '. " Android Manifest“标签 <Activity> 属性名称有无效字符' '。” Android Manifest
【发布时间】:2014-03-11 18:13:47
【问题描述】:

我在 Android Manifest 中收到错误“标签属性名称具有无效字符''。”,而没有明显的无效字符。代码如下:

<activity
        android:name="Quiz 31"
        android:configChanges="orientation|keyboardHidden"
        android:label="Quiz 31"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" >
        <intent-filter>
            <action android:name="com.SoulSlayerAbad.AMQ.QUIZ31" />

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

如您所见,代码中没有“ ”字符。有谁知道为什么会这样?需要注意的一点是,我使用在 Eclipse 控制台中运行的几行 Java 生成了这段代码。代码是:

        int Begin = 0, End = 0; 
    Scanner sc = new Scanner(System.in);

    String Text = " <activity "+
            "android:name=\"Quiz "+Begin+"\" "+
            "android:configChanges=\"orientation|keyboardHidden\" "+
            "android:label=\"Quiz "+Begin+"\" "+
            "android:screenOrientation=\"portrait\" "+
            "android:theme=\"@android:style/Theme.NoTitleBar\" > "+
            "<intent-filter> "+
                "<action android:name=\"com.SoulSlayerAbad.AMQ.QUIZ"+Begin+"\" /> "+

                "<category android:name=\"android.intent.category.DEFAULT\" /> "+
            "</intent-filter> "+
        "</activity> ";

    System.out.println("Begining:");
    Begin = sc.nextInt();
    System.out.println("End At:");
    End = sc.nextInt();
    while(Begin <= End){
        System.out.println(Text);
        Begin++;
    }

【问题讨论】:

  • 每 quiz_31 更改测验 31

标签: java android manifest


【解决方案1】:

android:name 应该具有代表活动的类路径的引用。它不能包含任何特殊字符或空格。

例如:

android:name="com.json.test.MainActivity"

这里,MainActivity 是扩展 Activity 的类文件。

【讨论】:

    【解决方案2】:

    你的名字属性应该包含你的活动类:

    机器人:名称 实现activity的类名,Activity的子类。属性值应该是完全限定的类名 (例如,“com.example.project.ExtracurricularActivity”)

    【讨论】:

      【解决方案3】:

      android:name 不能包含空格,它是类的名称。

      【讨论】:

        【解决方案4】:

        对于初学者来说,你错过了一个转义的报价;你确定代码可以编译吗?

        "<action android:name=\"com.SoulSlayerAbad.AMQ.QUIZ"+Begin+"\" /> "+
        

        +Begin 之前的双引号前缺少斜线。

        其次,如果您实际上 没有 错过那个斜线,但是当您将它粘贴到这里时它看起来像它,也许是一个奇怪的控制字符进入了该行。

        尝试删除该行并从头开始重新键入。

        您还可以在十六进制编辑器中打开清单文件,并确认没有混入奇怪的不可打印字符。

        【讨论】:

          【解决方案5】:

          您的android:name 不包含空格或特殊字符。例如android名称应该是这样的

          <activity  
          android:name="com.example.users.projectname.MainActivity">
          </activity>
          

          【讨论】:

            【解决方案6】:

            另外package 也需要用英文字母命名,否则AndroidManifest 会给出类似的错误。我经历过的

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-02-13
              • 2019-08-31
              • 2017-03-18
              • 2021-06-04
              • 2016-12-18
              • 2021-05-17
              • 2018-10-05
              相关资源
              最近更新 更多