una studio segundo programacion plano notificación notificaciones móviles mensajes maneja desarrollo curso app aplicaciones android android-widget nullpointerexception android-service

studio - notificaciones push android firebase



No se puede iniciar el servicio[nombre del servicio] con nulo (2)

De acuerdo con la documentación de onStart() (en realidad onStartCommand() pero los parámetros son los mismos):

intento Intención suministrada a startService (Intent), tal como se da. Esto puede ser nulo si el servicio se reinicia después de que su proceso haya desaparecido, y anteriormente había devuelto algo excepto START_STICKY_COMPATIBILIDAD.

Recientemente codifiqué un widget de Android y lo probé en Emulator, así como en mi Galaxy S, funcionó bien en ambos, después de publicar el mismo en el mercado de Android ahora recibo algunos informes de errores.

Estoy estableciendo un servicio en la actualización de Widget Class como este:

if (appWidgetIds != null) { final int N = appWidgetIds.length; // Perform this loop procedure for each App Widget that belongs to // this // provider for (int i = 0; i < N; i++) { // Start Service for each instance int appWidgetId = appWidgetIds[i]; Intent active = new Intent(context, DialerService.class); active.setAction("Start"); active.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); context.startService(active); } }

el error que algunas personas están teniendo es:

java.lang.RuntimeException: Unable to start service dialer.impact.DialerService@45f926f0 with null: java.lang.NullPointerException at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3282) at android.app.ActivityThread.access$3600(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2211) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:144) at android.app.ActivityThread.main(ActivityThread.java:4937) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException **at dialer.impact.DialerService.onStart(DialerService.java:18)** at android.app.Service.onStartCommand(Service.java:420) at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3267) ... 10 more

error indica una NullPointerException en la línea 18 de la ServiceClass que es esto:

@Override public void onStart(Intent intent, int startId) { //Line 18th String command = intent.getAction(); int appWidgetId = intent.getExtras().getInt( AppWidgetManager.EXTRA_APPWIDGET_ID); RemoteViews remoteView = new RemoteViews(getApplicationContext() .getPackageName(), R.layout.main); AppWidgetManager appWidgetManager = AppWidgetManager .getInstance(getApplicationContext()); }

La línea 18 es el String command = intent.getAction();

¿cuál podría ser la razón de la intención de ser nula por favor ayuda


Hola solo para agregar a esto, entonces la solución es solo agregar un if (intento! = Nulo) antes de getAction ()? Si hago esto, ¿el servicio se iniciará correctamente más adelante? Lo que significa que el sistema operativo en realidad me ayuda a comenzar el servicio correctamente en el caso de un intento nulo. Tengo miedo de terminar en una situación donde el servicio no se inicia en absoluto.