格式错误的清单文件 - 找不到清单元素声明

5
当启动应用程序时,出现“Failures manifest malformed”错误,那么我的清单文件有什么问题?
我已经查看过并进行了以下检查:
1. 检查了大小写 2. 包已正确设置 3. 安装了Parse和Facebook的所有库,(或者我可能漏掉了某些内容)
我也尝试过注释部分代码以检查是否能编译成功,但没有成功。
我还运行了验证并显示了这些错误。
Error:(1, 56) schema_reference.4: Failed to read schema document 'null', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
Error:(3, 38) cvc-elt.1: Cannot find the declaration of element 'manifest'.
Error:(1, 56) s4s-elt-schema-ns: The namespace of element 'x' must be from the schema namespace, 'http://www.w3.org/2001/XMLSchema'.
Error:(1, 56) s4s-elt-invalid: Element 'x' is not a valid element in a schema document.

我不理解那些错误信息以及 Element X 是什么。

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


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- PARSE -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<supports-screens android:xlargeScreens="true" />
<supports-screens android:largeScreens="true" />
<supports-screens android:normalScreens="true" />

<permission
    android:name=".permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

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

<!-- PARSE -->
<application
    android:name="Utilities.AppUtilities"
    android:allowBackup="true"
    android:icon="@mipmap/appicon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id" />

    <activity
        android:name=".Activities.Login"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.NoActionBar" />
    <activity  android:name="com.facebook.FacebookActivity"       android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <activity
        android:name=".Activities.Splash"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Activities.RegistrationTemplate"
        android:label="@string/title_activity_registration"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden|adjustResize" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Activities.Login" />
    </activity>
    <activity
        android:name=".Activities.Task"
        android:label="Task"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name=".Activities.SignUp"
        android:label="@string/title_activity_sign_up"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Activities.Login" />
    </activity>
    <activity
        android:name=".Activities.ClaimCode"
        android:label="Pocket"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Activities.Task" />
    </activity>
    <activity
        android:name=".Activities.Join"
        android:label="@string/title_activity_join"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Activities.Task" />
    </activity>
    <activity
        android:name=".Activities.TaskInstantGratification"
        android:label="@string/title_activity_task_instant_gratification"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name=".Activities.TaskRate"
        android:label="@string/title_activity_task_rate"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name=".Activities.TaskPhoto"
        android:label="@string/title_activity_task_photo"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name=".Activities.TaskSurprise"
        android:label="@string/title_activity_task_surprise"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name=".Activities.TaskSurvey"
        android:label="@string/title_activity_task_survey"
        android:parentActivityName=".Activities.Join"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Activities.Join" />
    </activity>
    <activity
        android:name=".Activities.Edit"
        android:label="@string/title_activity_edit"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Activities.Join" />
    </activity>


    <service android:name="com.parse.PushService" />

    <receiver android:name="com.parse.ParseBroadcastReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    <receiver
        android:name="com.parse.ParsePushBroadcastReceiver"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.parse.push.intent.RECEIVE" />
            <action android:name="com.parse.push.intent.DELETE" />
            <action android:name="com.parse.push.intent.OPEN" />
        </intent-filter>
    </receiver>
    <receiver
        android:name="com.parse.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
         <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="artisedesolution.task" />
        </intent-filter>
    </receiver>

    <activity
        android:name=".Activities.About"
        android:label="@string/title_activity_about"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Activities.Task" />
    </activity>
    <activity
        android:name=".Activities.InstructionsActivity"
        android:label="@string/title_activity_instructions" >
    </activity>
</application>
</manifest>
3个回答

0

你好,感谢您的回复。第43行只是格式错误。我已经将我的清单复制到xmlvalidate中,没有发生任何错误。@visionix - EnlightenMe

0

<application android:name="Utilities.AppUtilities" android:allowBackup="true" android:icon="@mipmap/appicon" android:label="@string/app_name" android:theme="@style/AppTheme" >

android:name="Utilities.AppUtilities" 中,我认为您漏了一个点: android:name=".Utilities.AppUtilities" 或者您可以使用 android:name="Utilities_AppUtilities"


嗨,谢谢你的尝试,但很抱歉它没有解决问题。@Braindead - EnlightenMe
我指定了SDK版本,然后按照我提供的解决方案,它对我起作用了。 - Braindead
嘿!格式错误的清单不再出现了。虽然名称现在被突出显示为红色,但可能我指定的路径对于该名称不正确。我会先查看它,再次感谢。 - EnlightenMe
请问我该如何获取应用程序下的android:name,因为似乎我提供的是错误的名称。或者可能需要更改某些配置才能使Utilities.AppUtlities正常工作。@Braindead - EnlightenMe
android:name=".Utilities.AppUtilities" 是一个扩展了 android.app.Application 的 Java 类。 - koni

0

这一行

    <activity               android:name="com.facebook.FacebookActivity"android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"

应该是

<activity     
    android:name="com.facebook.FacebookActivity"
    android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"

编辑:

你是否在AppUtilities中扩展了AppUtilities?因为Java类在其中被引用。

<application 
    android:name=".Utilities.AppUtilities" 
     ..... > 

是一个扩展了 android.app.Application 的类


哦,抱歉代码行非常长,所以在输入它到stackoverflow时没有格式化好。@koni - EnlightenMe

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