2012-01-12 118 views
1

嗨。我在本教程http://androidsourcecode.blogspot.com/2010/10/basic-android-background-service.html之后创建了一个后台服务应用程序。但是我在清单文件中有一个错误。强制关闭在Android应用程序的后台服务

错误消息

The element type "category" must be terminated by the matching end-tag "</category>". 

我不知道如何创建一个Android的后台服务。任何指导表示赞赏。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.javaorigin.android.sample.service" android:versionCode="1" 
android:versionName="1.0"> 
    <application icon="@drawable/icon" label="@string/app_name"> 
    <service class=".MyService" name=".MyService"> 
    <intent-filter> 
     <action android:value="com.javaorigin.android.sample.service.MY_SERVICE" 
       android:name=".MyService" /> 

     </intent-filter> 
    </service> 
    <activity android:name=".SampleAction" 
      android:label="@string/app_name"> 
     <intent-filter> 
      <action name="android.intent.action.MAIN"> 
      <category name="android.intent.category.LAUNCHER"> 
     </intent-filter> 
    </activity> 

+1

错误消息是很清楚。你忘了添加结束“/” Sujit 2012-01-12 05:20:27

回答

1

。在你的manifest文件没有什么大问题。那个教程看起来很老,你需要做一些改变来摆脱错误。就像正向斜线结束动作和类别标记,而不是属性名称使用android:name,移动应用程序标记之前的uses-sdk(Lint喜欢它)。而已 !

试试这个:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.javaorigin.android.sample.service" android:versionCode="1" 
    android:versionName="1.0"> 
    <uses-sdk minsdkversion="8"/> 
    <application icon="@drawable/icon" label="@string/app_name"> 
     <service class=".MyService" android:name=".MyService"> 
     <intent-filter> 
      <action android:value="com.javaorigin.android.sample.service.MY_SERVICE" 
        android:name=".MyService" /> 

      </intent-filter> 
     </service> 
     <activity android:name=".SampleAction" 
       android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 

    </application> 
</manifest> 
+0

谢谢它的正常工作。 – Mercy 2012-01-12 06:24:02

+0

其工作,但我有疑问 – Mercy 2012-01-12 06:26:47

+0

你有什么疑问? – 2012-01-12 06:28:37

0

它不相关的服务元素。您的XML格式错误;任何不包含嵌套元素的标签必须以斜线在同一行上终止。以下是修正的块:

<activity android:name=".SampleAction" 
     android:label="@string/app_name"> 
    <intent-filter> 
     <action name="android.intent.action.MAIN" /> 
     <category name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

请注意主MAIN和LAUNCHER后的斜线。如果没有这些,解析器会认为您将标签打开以将其嵌入下方的儿童。

+0

如果我这样做,我得到错误在该行中发现的清单文件中的多个注释: \t - 错误:错误解析XML:不匹配的标签 \t - 元素类型“使用-SDK”必须由匹配的结束标签被终止“” 。 – Mercy 2012-01-12 05:22:44

+0

听起来就像你在标签上丢失了封闭物一样。由于您的清单没有发布,因此很难验证。任何地方你都有一个不包裹其他标签的标签,确保它按照描述正确关闭。 – Devunwired 2012-01-12 06:05:16

0

复制粘贴此在你的清单:

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.javaorigin.android.sample.service" android:versionCode="1" 
    android:versionName="1.0"> 
     <application icon="@drawable/icon" label="@string/app_name"> 
     <service class=".MyService" name=".MyService"> 
     <intent-filter> 
      <action android:value="com.javaorigin.android.sample.service.MY_SERVICE" 
        android:name=".MyService" /> 

      </intent-filter> 
     </service> 
     <activity android:name=".SampleAction" 
       android:label="@string/app_name"> 
      <intent-filter> 
       <action name="android.intent.action.MAIN"/> 
       <category name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
    </application> 
    </manifest> 
+0

我得到了三个错误标记缺少必需的属性名称。标记缺少必需的属性名称。标记缺少必需的属性name.if我应用此代码我得到这样的错误 – Mercy 2012-01-12 05:32:10

+0

你配置了你的清单文件就像链接中给出的?我的意思是你提供的链接。 – Ghost 2012-01-12 05:34:50

+0

我粘贴你的清单only.please给Android的背景服务的任何工作示例 – Mercy 2012-01-12 05:38:45