2012-09-10 30 views
10

adbシェルからサービスを開始しようとしています。しかしHow to start and stop android service from a adb shell? 、私はサービスを開始するとき:Android adbシェルam startservice:エラーが見つかりません

adb shell am startservice com.mypackage/com.mypackage.service.MyService 

私はこのメッセージが表示されます。

Starting service: Intent { act=android.intent.action.VIEW dat=com.mypackage/com.mypackage.service.MyService } 
Error: Not found; no service started. 

私はのAndroidManifest.xmlでサービスを宣言する:

<application> 
    ... 
    <service 
    android:name="com.mypackage.service.MyService" 
    android:label="@string/local_service_label" 
    android:icon="@drawable/ic_launcher"> 
    </service> 
</application> 

既に同様の質問がありますあなたはこれをどのように解決するか考えていますか? ありがとうございました!

答えて

12
adb shell am startservice -n com.mypackage/.service.MyService 

-n 'line_no:' を追加し、プレフィックス

+1

1つのコマンドで質問に答えることができますが、 '-n'とは何かを説明すると便利です。任意のコードを4つのスペースでインデントすることもできます。 – ronalchn

+1

"am startservice"ヘルプリスト[-n ] (行番号には関係ありません) – dricket

3

は、以下の例のように

<application android:label="@string/app_name" 
    android:icon="@drawable/ic_launcher" 
    android:theme="@style/AppTheme"> 
    <service 
     android:name=".MyService" 
     android:description="@string/Desciption" 
     android:enabled="true" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="com.nandhan.myservice" /> 
     </intent-filter> 
    </service>   
</application> 

それから私はadbのシェル午前

以下をStartService COMとしてサービスを開始することを検討してください。 nandhan.myservice/.MyService

1

マニフェスト:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
    package="com.xyz.path"> 

... 

<application 

... 

    <service android:name=".MyService"> 
     <intent-filter> 
      <action android:name="com.xyz.path.MY_SERVICE" /> 
     </intent-filter> 
    </service> 

... 

コマンド:私の場合は

adb shell am startservice -n com.xyz.path/.MyService 
4

、起動に失敗したサービスがcom.android.tools.fd.runtime.InstantRunServiceました。

Starting service: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xxx.xxx/com.android.tools.fd.runtime.InstantRunService } Error: Not found; no service started.

私のAndroid搭載デバイスには何かが欠けていました。無効にするにはpreferences > Build, Execution, Deployment > Instant Runに行き、Enable Instant Run to hot swap code/resource changes on deploy (default enabled)のチェックを外してください。

disable instant run

そのスクリーンショットによると、それはそれを維持するために、実際に、私はその機能と幸せになると思いましです。少なくとも私は余分なロギングを実行し、Googleにフィードバックを送った。今日は私のために即座に実行する必要はありません)

関連する問題