Question

I am getting the error "Tag attribute name has invalid character ' '. " in the Android Manifest, while there is no obviously invalid character. Here is the code:

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

As you can see, no ' ' character in the code. Does anyone know why this is happening? One thing to note is that I generated this piece of code using a few lines of Java run inside of Eclipse console. The code for that is:

        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++;
    }
Was it helpful?

Solution

android:name is supposed to have reference of your class path which represents the activity. It must not contain any special characters or spaces.

For example:

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

Here, MainActivity is the class file which extends an Activity.

OTHER TIPS

Your name attribute should contain your activity class:

android:name The name of the class that implements the activity, a subclass of Activity. The attribute value should be a fully qualified class name (such as, "com.example.project.ExtracurricularActivity")

android:name can't contain white spaces, it's the name of a class.

Well for starters you're missing an escaped quote; are you sure that code compiles?

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

Slash missing before the double quote just before +Begin.

Secondly, if you actually aren't missing that slash, but when you pasted it here it made it look like it, perhaps an odd control character made it into that line.

Try deleting that line and retyping it from scratch.

You could also open your manifest file in a hex editor and verify that no strange non-printable characters are mixed in.

your android:name does not contain white spaces or special characters. for example android name should be like this

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

In additional package is also needed to be named in English alphabet other case AndroidManifest gives similar error. That I experienced

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top