2012-01-12 121 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