domaven / xamarin-plugins

Cross platform Xamarin & Windows plugins for PCLs
MIT License
37 stars 51 forks source link

Crash in GeofenceBroadcastReceiver.cs if Google Play Service's aren't installed #8

Closed PureWeen closed 8 years ago

PureWeen commented 8 years ago

Exception from LogCat below

it looks like in "GeofenceImplementation.IsLocationEnabled"

After "InitializeGoogleAPI();" is called it doesn't validate if that succeeded...

So when this is called a little bit later on it throws a null reference exception

var pendingResult = LocationServices.SettingsApi.CheckLocationSettings(mGoogleApiClient, builder.Build());

This happens when I test my app and google play isn't installed ... If i turn the device off then back on I get this exception

03-14 17:20:42.395 1243-1243/? I/MonoDroid: UNHANDLED EXCEPTION:
03-14 17:20:42.407 1243-1243/? I/MonoDroid: Java.Lang.NullPointerException: GoogleApiClient must not be null
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <0x9f4f8e90 + 0x0002b> in <filename unknown>:0 
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   at Android.Runtime.JNIEnv.CallObjectMethod (IntPtr jobject, IntPtr jmethod, Android.Runtime.JValue* parms) <0xa09173f0 + 0x0009b> in <filename unknown>:0 
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   at Android.Gms.Location.ISettingsApiInvoker.CheckLocationSettings (Android.Gms.Common.Apis.GoogleApiClient client, Android.Gms.Location.LocationSettingsRequest request) <0x9f4f8420 + 0x00107> in <filename unknown>:0 
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   at Geofence.Plugin.GeofenceImplementation.IsLocationEnabled (System.Action`1 returnAction) <0xa0830d90 + 0x0016c> in <filename unknown>:0 
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   at Geofence.Plugin.GeofenceImplementation..ctor () <0xa082cad0 + 0x000f3> in <filename unknown>:0 
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   at Geofence.Plugin.CrossGeofence.CreateGeofence () <0xa082ca78 + 0x0001f> in <filename unknown>:0 
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   at Geofence.Plugin.CrossGeofence+<>c.<.cctor>b__55_0 () <0xa082ca58 + 0x0000b> in <filename unknown>:0 
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   at System.Lazy`1[T].CreateValue () <0xa082c3a8 + 0x001a4> in <filename unknown>:0 
03-14 17:20:42.407 1243-1243/? I/MonoDroid:   --- End of managed exception stack trace ---
03-14 17:20:42.407 1243-1243/? I/MonoDroid: java.lang.NullPointerException: GoogleApiClient must not be null
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at com.google.android.gms.common.internal.zzx.zzb(Unknown Source)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at com.google.android.gms.internal.zzlb$zza.<init>(Unknown Source)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at com.google.android.gms.location.LocationServices$zza.<init>(Unknown Source)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at com.google.android.gms.location.internal.zzq$1.<init>(Unknown Source)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at com.google.android.gms.location.internal.zzq.zza(Unknown Source)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at com.google.android.gms.location.internal.zzq.checkLocationSettings(Unknown Source)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at md5bb8cda7c6f2e92ce076bef532eff3783.GeofenceBootReceiver.n_onReceive(Native Method)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at md5bb8cda7c6f2e92ce076bef532eff3783.GeofenceBootReceiver.onReceive(GeofenceBootReceiver.java:28)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2579)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at android.app.ActivityThread.access$1700(ActivityThread.java:144)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at android.os.Handler.dispatchMessage(Handler.java:102)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at android.os.Looper.loop(Looper.java:135)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at android.app.ActivityThread.main(ActivityThread.java:5221)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at java.lang.reflect.Method.invoke(Native Method)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at java.lang.reflect.Method.invoke(Method.java:372)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
03-14 17:20:42.407 1243-1243/? I/MonoDroid:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
rdelrosario commented 8 years ago

Thanks for fixing will add on next release