Android adb shell am startservice:找不到错误

时间:2012-09-10 07:58:06

标签: android adb

我正在尝试从adb shell启动服务。已有类似的问题:How to start and stop android service from a adb shell? 但是,当我开始服务时:

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>

你知道如何解决这个问题吗? 谢谢!

4 个答案:

答案 0 :(得分:13)

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

-n添加'line_no:'前缀

答案 1 :(得分:4)

就我而言,服务无法启动的是com.android.tools.fd.runtime.InstantRunService

  

启动服务:Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.xxx.xxx / com.android.tools.fd.runtime.InstantRunService}   错误:未找到;没有服务开始。

原来我的android设备丢失了一些东西。要将其停用,请转到preferences > Build, Execution, Deployment > Instant Run并取消选中Enable Instant Run to hot swap code/resource changes on deploy (default enabled)

disable instant run

根据截图,保留它更好,事实上,我对这个功能更满意。至少我跑了额外的日志记录并发送反馈到谷歌。我刚刚需要一个构建asap,所以今天没有立即运行;)

答案 2 :(得分: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 shell am startservice com.nandhan.myservice / .MyService

答案 3 :(得分: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