Android adb shell am startservice: Error no encontrado
Estoy intentando comenzar el servicio de la cáscara del adb. Ya hay una pregunta similar: ¿Cómo iniciar y detener el servicio de Android desde un shell de adb? Sin embargo, cuando empiezo el servicio con:
adb shell am startservice com.mypackage/com.mypackage.service.MyService
Recibo este mensaje:
- Adb conexión wifi con Android 6.0
- Tamaño de la pantalla del dispositivo Android
- Establecer el formato de hora del sistema a través de la shell de adb
- ADB lanza SecurityException al iniciar el servicio después de la actualización del sistema a Nexus 7: "Caller uid = 2000 no tiene privilegios para comunicarse con user = -2"
- El servidor de adb está desactualizado. Matar ... no puede enlazar 'tcp: 5037' servidor ADB no ACK * no pudo iniciar daemon * en ubuntu 14.04 LTS
Starting service: Intent { act=android.intent.action.VIEW dat=com.mypackage/com.mypackage.service.MyService } Error: Not found; no service started.
Declaro el servicio en AndroidManifest.xml:
<application> ... <service android:name="com.mypackage.service.MyService" android:label="@string/local_service_label" android:icon="@drawable/ic_launcher"> </service> </application>
¿Tienes alguna idea de cómo resolver esto? ¡Gracias!
- Logcat tiene registros con marcas de tiempo fuera de secuencia
- Adb shell "operación no permitida" para cada comando
- Cómo abrir adb y usarlo para enviar comandos
- Cómo deshabilitar el reenvío de puertos adb?
- Cómo inyectar código javascript con ADB en una pestaña abierta del navegador?
- Cómo utilizar el comando adb para empujar un archivo en el dispositivo sin tarjeta sd
- ¿Cómo puedo implementar / ejecutar la aplicación en un dispositivo que se ejecuta remotamente usando adb (android platform-tools)?
- Android 4.4 no me permite guardar una imagen cuando se captura mediante comandos adb
adb shell am startservice -n com.mypackage/.service.MyService
-n
añade el prefijo 'line_no:'
Considere lo siguiente como un ejemplo
<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>
Entonces comenzaría el servicio como abajo
Adb shell am startservice com.nandhan.myservice / .MyService
En mi caso, el servicio no se inició fue com.android.tools.fd.runtime.InstantRunService
.
Servicio de inicio: Intención {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.xxx.xxx / com.android.tools.fd.runtime.InstantRunService} Error: No encontrado; No se inició el servicio.
Resulta que mi dispositivo Android me faltaba algo. Para desactivarlo, vaya a preferences > Build, Execution, Deployment > Instant Run
y desmarque Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
.
De acuerdo con esa captura de pantalla, es mejor mantenerlo y de hecho, estaría más feliz con esa función. Por lo menos he corrido con el registro extra y envió comentarios a google. Yo sólo necesitaba una construcción lo antes posible, por lo que ningún instante correr para mí hoy;)
Manifiesto:
<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> ...
Mando:
adb shell am startservice -n com.xyz.path/.MyService