No se puede iniciar la intención del servicio

Tengo una clase de servicio. He exportado esta clase al tarro y he embed el tarro en mi aplicación del cliente.

Cuando sea necesario, llamo a la clase de servicio. Cuando intento hacer esto, consigo el error siguiente:

Unable to start service Intent {comp={com.sample.service/com.sample.service.serviceClass}} : not found 

Tengo otra clase aparte de la clase de servicio, a la que puedo acceder (crear el objeto de esa clase) que están dentro del mismo tarro.

Siento que he perdido algo en mi configuración o manifiesto.

Por favor, ayúdame a identificar lo mismo. Mi código está abajo:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = new Intent () ; intent.setClassName("com.sample.service" ,"com.sample.service.serviceClass") ; this.startService(intent) ; // when I call this line I get the message... // binding other process continue here } 

Cliente manifest.xml

 <service android:name="com.sample.service.serviceClass" android:exported="true" android:label="@string/app_name" android:process=":remote"> <intent-filter><action android:name="com.sample.service.serviceClass"></action> </intent-filter> </service> 

Gracias por adelantado,
Vinay

Primero, no necesitas android:process=":remote" , así que por favor, quítalo, ya que todo lo que hará es ocupar RAM adicional sin ningún beneficio.

En segundo lugar, dado que el elemento <service> contiene una cadena de acción, úsela:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent=new Intent("com.sample.service.serviceClass"); this.startService(intent); } 

Para cualquier persona que viene a través de este hilo que tenía este problema y estaba tirando de mi pelo. ¡Tenía la declaración de servicio FUERA de la etiqueta del final de la '<aplicación>' DUH!

DERECHO:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" ...> ... <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity ...> ... </activity> <service android:name=".Service"/> <receiver android:name=".Receiver"> <intent-filter> ... </intent-filter> </receiver> </application> <uses-permission android:name="..." /> 

ERROR pero todavía compila sin errores:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" ...> ... <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity ...> ... </activity> </application> <service android:name=".Service"/> <receiver android:name=".Receiver"> <intent-filter> ... </intent-filter> </receiver> <uses-permission android:name="..." /> 

1) compruebe si la declaración de servicio en manifesto está anidada en la etiqueta de aplicación

 <application> <service android:name="" /> </application> 

2) compruebe si su service.java está en el mismo paquete o paquete de dif como la actividad

 <application> <!-- service.java exists in diff package --> <service android:name="com.package.helper.service" /> </application> 
 <application> <!-- service.java exists in same package --> <service android:name=".service" /> </application> 

Espero poder ayudar a alguien con esta información también: Me cambié mi clase de servicio en otro paquete y fijé las referencias. El proyecto estaba perfectamente bien, pero la clase de servicio no pudo ser encontrada por la actividad.

Al ver el log en logcat me di cuenta de la advertencia sobre el problema: la actividad no pudo encontrar la clase de servicio, pero lo curioso fue que el paquete era incorrecto, contenía un "/" char. El compilador estaba buscando

Com.something./service.MyService

en lugar de

Com.something.service.MyService

Me cambié la clase de servicio fuera del paquete y volver y todo funcionó bien.

En mi caso el límite máximo de 1 MB para el transporte de datos por Intent. Sólo usaré Caché o Almacenamiento.

He encontrado el mismo problema. Perdí casi un día tratando de iniciar un servicio de OnClickListener método – fuera de la onCreate y después de 1 día, todavía no! ¡Muy frustrante! Estaba mirando el ejemplo de ejemplo RemoteServiceController . Su trabajo, pero mi aplicación no funciona!

La única manera que estaba trabajando para mí, era de dentro del método onCreate . Ninguna de las otras variantes funcionó y créanme que he probado todos ellos.

Conclusión:

  • Si pones tu clase de servicio en un paquete diferente del mainActivity, obtendré todo tipo de errores
  • También el "/" no pudo encontrar la ruta al servicio, intentó comenzar con Intent(package,className) y nada, también otro tipo de intención de inicio

  • Moví la clase de servicio en el mismo paquete de la actividad Formulario final que funciona

  • Esperemos que esto ayude a alguien mediante la definición de los lisellerers onClick dentro del método onCreate como este:

     public void onCreate() { //some code...... Button btnStartSrv = (Button)findViewById(R.id.btnStartService); Button btnStopSrv = (Button)findViewById(R.id.btnStopService); btnStartSrv.setOnClickListener(new OnClickListener() { public void onClick(View v) { startService(new Intent("RM_SRV_AIDL")); } }); btnStopSrv.setOnClickListener(new OnClickListener() { public void onClick(View v) { stopService(new Intent("RM_SRV_AIDL")); } }); } // end onCreate 

También es muy importante para el archivo de manifiesto, asegúrese de que el servicio es hijo de la aplicación:

 <application ... > <activity ... > ... </activity> <service android:name="com.mainActivity.MyRemoteGPSService" android:label="GPSService" android:process=":remote"> <intent-filter> <action android:name="RM_SRV_AIDL" /> </intent-filter> </service> </application> 
  • Delphi xe10 gps del servicio del androide
  • Android: No se pudo importar la clase java.util.ArrayList en el archivo aidl
  • Propósito always null onStartCommand
  • Hacer que la actividad se ejecute en segundo plano
  • Android bluetooth SDP no reconoce el servicio anunciado en JAVAME
  • La mejor manera de actualizar un widget de Android cada 20-30 segundos: Handler, Service or Alarm?
  • AlarmManager que repite la alarma que falta al azar cuando el teléfono no está en uso
  • Mi BroadcastReceiver no está recibiendo la intención BOOT_COMPLETED después de mis botas N1
  • AlarmManager dentro de BroadcastReceiver cuando BOOT_COMPLETED
  • Cómo establecer la prioridad de IntentService en Android
  • Android-Servicio matado con "ya no quieren" - cómo reiniciarlo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.