1

I have an app that displays the users location on a map. It all works fine on API16, 19, 21, 23 and API10 on a physical Nexus One, but when I run it on a Genymotion API10 emulator, the emulator reboots when I call

mMap.setMyLocationEnabled(true);

(full sample activity class at the bottom of this post)

The emulator reboots without any prior notice, and here is the output from the log:

    05-26 20:36:02.944 14384-14441/com.google.android.gms.persistent E/LocationManager: locationCallbackFinished: RemoteException
   android.os.DeadObjectException
       at android.os.BinderProxy.transact(Native Method)
       at android.location.ILocationManager$Stub$Proxy.locationCallbackFinished(ILocationManager.java:763)
       at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:244)
       at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:160)
       at android.location.LocationManager$ListenerTransport$2.handleMessage(LocationManager.java:183)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:130)
       at android.os.HandlerThread.run(HandlerThread.java:60)
    05-26 20:36:02.944 14384-14441/com.google.android.gms.persistent E/LocationManager: locationCallbackFinished: RemoteException
   android.os.DeadObjectException
       at android.os.BinderProxy.transact(Native Method)
       at android.location.ILocationManager$Stub$Proxy.locationCallbackFinished(ILocationManager.java:763)
       at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:244)
       at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:160)
       at android.location.LocationManager$ListenerTransport$2.handleMessage(LocationManager.java:183)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:130)
       at android.os.HandlerThread.run(HandlerThread.java:60)
    05-26 20:36:02.944 14384-14441/com.google.android.gms.persistent E/LocationManager: locationCallbackFinished: RemoteException
   android.os.DeadObjectException
       at android.os.BinderProxy.transact(Native Method)
       at android.location.ILocationManager$Stub$Proxy.locationCallbackFinished(ILocationManager.java:763)
       at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:244)
       at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:160)
       at android.location.LocationManager$ListenerTransport$2.handleMessage(LocationManager.java:183)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:130)
       at android.os.HandlerThread.run(HandlerThread.java:60)
    05-26 20:36:02.952 123-123/? E/installd: eof
    05-26 20:36:02.952 123-123/? E/installd: failed to read size
    05-26 20:36:03.092 14223-14223/com.google.process.gapps E/AndroidRuntime: FATAL EXCEPTION: main
          java.lang.RuntimeException: Package manager has died
              at android.app.ContextImpl$ApplicationPackageManager.getApplicationInfo(ContextImpl.java:1841)
              at odk.b(SourceFile:159)
              at ocv.a(SourceFile:826)
              at ocw.handleMessage(SourceFile:13053)
              at android.os.Handler.dispatchMessage(Handler.java:99)
              at android.os.Looper.loop(Looper.java:130)
              at android.app.ActivityThread.main(ActivityThread.java:3683)
              at java.lang.reflect.Method.invokeNative(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:507)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
              at dalvik.system.NativeStart.main(Native Method)
           Caused by: android.os.DeadObjectException
              at android.os.BinderProxy.transact(Native Method)
              at android.content.pm.IPackageManager$Stub$Proxy.getApplicationInfo(IPackageManager.java:1264)
              at android.app.ContextImpl$ApplicationPackageManager.getApplicationInfo(ContextImpl.java:1836)
              at odk.b(SourceFile:159) 
              at ocv.a(SourceFile:826) 
              at ocw.handleMessage(SourceFile:13053) 
              at android.os.Handler.dispatchMessage(Handler.java:99) 
              at android.os.Looper.loop(Looper.java:130) 
              at android.app.ActivityThread.main(ActivityThread.java:3683) 
              at java.lang.reflect.Method.invokeNative(Native Method) 
              at java.lang.reflect.Method.invoke(Method.java:507) 
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
              at dalvik.system.NativeStart.main(Native Method) 
    05-26 20:36:03.096 14468-14842/com.google.android.gms E/ActivityThread: Failed to find provider info for com.google.android.gsf.gservices
    05-26 20:36:03.104 14468-14842/com.google.android.gms E/ActivityThread: Failed to find provider info for com.google.android.gsf.gservices
    05-26 20:36:03.104 14468-14842/com.google.android.gms E/ActivityThread: Failed to find provider info for com.google.android.gsf.gservices
    05-26 20:36:03.112 14223-14223/? E/AndroidRuntime: Error reporting crash
    android.os.DeadObjectException
        at android.os.BinderProxy.transact(Native Method)
        at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:2547)
        at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:76)
        at ilq.uncaughtException(SourceFile:118)
        at ils.uncaughtException(SourceFile:54)
        at ilm.uncaughtException(SourceFile:63)
        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:854)
        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:851)
        at dalvik.system.NativeStart.main(Native Method)
    05-26 20:36:03.128 14468-14842/com.google.android.gms E/ActivityThread: Failed to find provider info for com.google.android.gsf.gservices
    05-26 20:36:03.128 14468-14842/com.google.android.gms E/ActivityThread: Failed to find provider info for com.google.android.gsf.gservices
    05-26 20:36:03.128 14468-14842/com.google.android.gms E/AndroidRuntime: FATAL EXCEPTION: SyncAdapterThread-1
        java.lang.RuntimeException: android.os.DeadObjectException
            at android.accounts.AccountManager.getAccountsByType(AccountManager.java:394)
            at smx.b(SourceFile:114)
            at tat.a(SourceFile:40)
            at ssg.a(SourceFile:447)
            at ssg.a(SourceFile:189)
            at ssg.a(SourceFile:91)
            at jcj.onPerformSync(SourceFile:98)
            at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:164)
         Caused by: android.os.DeadObjectException
            at android.os.BinderProxy.transact(Native Method)
            at android.accounts.IAccountManager$Stub$Proxy.getAccounts(IAccountManager.java:474)
            at android.accounts.AccountManager.getAccountsByType(AccountManager.java:391)
            at smx.b(SourceFile:114) 
            at tat.a(SourceFile:40) 
            at ssg.a(SourceFile:447) 
            at ssg.a(SourceFile:189) 
            at ssg.a(SourceFile:91) 
            at jcj.onPerformSync(SourceFile:98) 
            at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:164) 
    05-26 20:36:03.128 14468-14842/com.google.android.gms E/AndroidRuntime: Error reporting crash
        android.os.DeadObjectException
            at android.os.BinderProxy.transact(Native Method)
            at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:2547)
            at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:76)
            at ilq.uncaughtException(SourceFile:118)
            at ils.uncaughtException(SourceFile:54)
            at ilm.uncaughtException(SourceFile:63)
            at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:854)
            at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:851)
    05-26 20:36:03.472 14873-14947/se.miun.mawi1402.bathingsites E/Surface: Surface (identity=11) requestBuffer(1, 0, 0, 4, 00000200) returned a buffer with a null handle
    05-26 20:36:03.472 14873-14947/se.miun.mawi1402.bathingsites E/Surface: getBufferLocked(1, 0, 0, 4, 00000200) failed (Out of memory)
    05-26 20:36:03.472 14873-14947/se.miun.mawi1402.bathingsites E/EGL_emulation: tid 14947: swapBuffers(322): error 0x3003 (EGL_BAD_ALLOC)
    05-26 20:36:03.512 14384-14441/com.google.android.gms.persistent E/LocationManager: removeUpdates: DeadObjectException
   android.os.DeadObjectException
       at android.os.BinderProxy.transact(Native Method)
       at android.location.ILocationManager$Stub$Proxy.removeUpdates(ILocationManager.java:692)
       at android.location.LocationManager.removeUpdates(LocationManager.java:872)
       at adka.a(SourceFile:79)
       at acpn.b(SourceFile:196)
       at acpk.a(SourceFile:123)
       at acpo.a(SourceFile:133)
       at acpk.a(SourceFile:100)
       at acpv.f(SourceFile:46)
       at acpi.a(SourceFile:62)
       at acpv.f(SourceFile:46)
       at acmw.a(SourceFile:10191)
       at acmq.a(SourceFile:10117)
       at ackx.a(SourceFile:95)
       at acna.a(SourceFile:204)
       at acoz.b(SourceFile:352)
       at acoz.a(SourceFile:235)
       at acof.a(SourceFile:144)
       at acpd.handleMessage(SourceFile:100)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at adkk.dispatchMessage(SourceFile:50)
       at android.os.Looper.loop(Looper.java:130)
       at android.os.HandlerThread.run(HandlerThread.java:60)
    05-26 20:36:03.512 14384-14441/com.google.android.gms.persistent E/LocationManager: RemoteException in unregisterGpsStatusListener: 
   android.os.DeadObjectException
       at android.os.BinderProxy.transact(Native Method)
       at android.location.ILocationManager$Stub$Proxy.removeGpsStatusListener(ILocationManager.java:746)
       at android.location.LocationManager.removeGpsStatusListener(LocationManager.java:1342)
       at adjw.a(SourceFile:89)
       at acpk.a(SourceFile:7063)
       at acpv.f(SourceFile:46)
       at acpi.a(SourceFile:62)
       at acpv.f(SourceFile:46)
       at acmw.a(SourceFile:10191)
       at acmq.a(SourceFile:10117)
       at ackx.a(SourceFile:95)
       at acna.a(SourceFile:204)
       at acoz.b(SourceFile:352)
       at acoz.a(SourceFile:235)
       at acof.a(SourceFile:144)
       at acpd.handleMessage(SourceFile:100)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at adkk.dispatchMessage(SourceFile:50)
       at android.os.Looper.loop(Looper.java:130)
       at android.os.HandlerThread.run(HandlerThread.java:60)
    05-26 20:36:03.692 14217-14217/com.android.systemui E/InputQueue-JNI: channel 'b6660528 StatusBar (client)' ~ Publisher closed input channel or an error occurred.  events=0x8
    05-26 20:36:03.692 14217-14217/com.android.systemui E/InputQueue-JNI: channel 'b67f7ad0 TrackingView (client)' ~ Publisher closed input channel or an error occurred.  events=0x8
    05-26 20:36:03.692 14217-14217/com.android.systemui E/InputQueue-JNI: channel 'b6949638 StatusBarExpanded (client)' ~ Publisher closed input channel or an error occurred.  events=0x8
    05-26 20:36:03.692 14218-14218/com.android.launcher E/InputQueue-JNI: channel 'b6804400 com.android.launcher/com.android.launcher2.Launcher (client)' ~ Publisher closed input channel or an error occurred.  events=0x8
    05-26 20:36:03.744 127-127/? E/local_gps: Can't send RMC command
    05-26 20:36:03.892 14961-14961/? E/ALSALib: external/alsa_lib/src/control/control.c:902:(snd_ctl_open_noupdate) Invalid CTL AndroidOut
    05-26 20:36:03.892 14961-14961/? E/ALSALib: external/alsa_lib/src/control/control.c:902:(snd_ctl_open_noupdate) Invalid CTL AndroidIn
    05-26 20:36:03.896 14961-14961/? E/ALSALib: external/alsa_lib/src/pcm/pcm.c:2210:(snd_pcm_open_noupdate) Unknown PCM AndroidPlayback_Speaker_normal
    05-26 20:36:03.896 14961-14961/? E/ALSALib: external/alsa_lib/src/pcm/pcm.c:2210:(snd_pcm_open_noupdate) Unknown PCM AndroidPlayback_Speaker
    05-26 20:36:03.896 14961-14961/? E/ALSALib: external/alsa_lib/src/pcm/pcm.c:2210:(snd_pcm_open_noupdate) Unknown PCM AndroidPlayback

Is there any way I can prevent this from happening? I have obviously installed Google Play Services and Google Maps on the emulator, and what's really weird is that the Google Maps app seems to be working fine.

EDIT

Full example activity which causes the emulator to reboot:

public class MapsActivityExample extends FragmentActivity implements OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, LocationListener {
    private GoogleApiClient mGoogleApiClient;
    private GoogleMap mMap;
    private LocationRequest mLocationRequest;
    private Location lastLocation;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

        // Create an instance of GoogleAPIClient, used to deal with device location
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addApi(LocationServices.API)
                .build();


        // Create a location request to use when we request location change updates
        mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(5000); // 5s
        mLocationRequest.setFastestInterval(1000); // 1s
        mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);

    }

    @Override
    protected void onStart() {
        super.onStart();

        // Connect the GoogleApiClient so we can request location updates
        mGoogleApiClient.connect();
    }

    @Override
    protected void onStop() {
        super.onStop();

        // Disconnect the GoogleApiClient
        mGoogleApiClient.disconnect();
    }


    // Callback for when the map is ready
    @Override
    public void onMapReady(GoogleMap googleMap){
        mMap = googleMap;
    }


    // Callback for when the GoogleAPIClient is connected
    @Override
    public void onConnected(Bundle connectionHint) {
        // Make sure we have permission
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
            return;

        // Start requesting location updates
        LocationServices.FusedLocationApi.requestLocationUpdates( mGoogleApiClient, mLocationRequest, this);

        // Enable the MyLocation layer, which displays the device's current location on the map
        if (null != mMap)
            mMap.setMyLocationEnabled(true); /** <- THIS SEEMS TO BE WHAT'S CAUSING THE REBOOT **/
    }


    // Callback for when the GoogleAPIClient connection is suspended
    @Override
    public void onConnectionSuspended(int i) {}


    // Callback for when the device location has changed
    @Override
    public void onLocationChanged(Location location) {
    }

}
Magnus
  • 17,157
  • 19
  • 104
  • 189

0 Answers0