No se puede iniciar el servicio con null
Recientemente codifiqué un Widget de Android y lo probé en Emulator, así como en mi Galaxy S, funcionó bien en ambos, después de haber publicado el mismo en Android Market ahora estoy recibiendo algunos informes de error.
Estoy declarando un servicio en el onUpdate de Widget Class como este:
- Widget personalizado de entrada de código PIN de Android
- Tamaño incorrecto de la cuadrícula del widget
- RemoteViews setViewVisibility en Android Widget
- Widget de la aplicación: ¿puedes especificar un tamaño mínimo y un tamaño predeterminado?
- Widget para encender / apagar la linterna de la cámara en android
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 recibiendo 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 ServiceClass
que es:
@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 nulo por favor ayuda
- Problema con el widget de la aplicación de Android
- Restaurar Administrador de alarmas después de reiniciar el teléfono
- AsyncTask para actualizar widget - cómo acceder a textviews en onPostExecute ()?
- Android - widget de acordeón
- Widget de Android no se actualizará
- OnClick PendingIntent en widget a veces no funciona
- Android 4.0: widgets no aparecen?
- Cambiar el diseño de widgets mediante programación
De acuerdo con la documentación de onStart()
(en realidad onStartCommand()
pero los parámetros son los mismos):
Intención La Intención se suministra a startService (Intención), tal como se da. Esto puede ser nulo si el servicio se está reiniciando después de que su proceso ha desaparecido y que había devuelto anteriormente cualquier cosa excepto START_STICKY_COMPATIBILITY.
Hola sólo para agregar a esto, por lo que la solución es sólo para agregar un if (intention! = Null) antes de la getAction ()? ¿Si hago esto, el servicio comenzará para arriba correctamente más adelante en sus los propios? Lo que significa que el sistema operativo realmente me ayuda a iniciar el servicio correctamente en el caso de una intención nula. Tengo miedo de terminar en una situación en la que el servicio no se inicia en absoluto.