Abbiamo ricevuto segnalazioni di arresti anomali di alcuni dispositivi quando un utente apre un'attività che chiama il metodo getLastKnownLocation
del gestore località. Abbiamo chiesto tutte le autorizzazioni necessarie nel nostro manifesto dell'applicazione:SecurityException quando si chiama getLastKnownLocation
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Ecco la traccia dello stack:
java.lang.RuntimeException: Unable to resume activity {com.projectname/com.projectname.ui.AtmFinderActivity}: java.lang.SecurityException: invalid package name: com.google.android.gms
at android.app.ActivityThread.performResumeActivity(ActivityThread.java)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.access$600(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.SecurityException: invalid package name: com.google.android.gms
at android.os.Parcel.readException(Parcel.java)
at android.os.Parcel.readException(Parcel.java)
at android.location.ILocationManager$Stub$Proxy.getLastLocation(ILocationManager.java)
at android.location.LocationManager.getLastKnownLocation(LocationManager.java)
at android.privacy.surrogate.PrivacyLocationManager.getLastKnownLocation(PrivacyLocationManager.java)
at com.projectname.util.LocationUtils.getLastKnownLocation(SourceFile:48)
at com.projectname.ui.AtmFinderFragment.initMapIfNeeded(SourceFile:401)
at com.projectname.ui.AtmFinderFragment.onGooglePlayServicesAvailable(SourceFile:187)
at com.projectname.maps.GoogleMapServicesUtil.getGooglePlayServicesStatus(SourceFile:40)
at com.projectname.ui.AtmFinderFragment.onResume(SourceFile:149)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:917)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1080)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1062)
at android.support.v4.app.FragmentManagerImpl.dispatchResume(SourceFile:1820)
at android.support.v4.app.FragmentActivity.onPostResume(SourceFile:412)
at com.actionbarsherlock.app.SherlockFragmentActivity.onPostResume(SourceFile:69)
at android.app.Activity.performResume(Activity.java)
... 13 more
Ecco il metodo rilevante dal LocationUtils:
public static Location getLastKnownLocation(Context context) {
if (context != null) {
LocationManager lm = (LocationManager) context.getSystemService(
Context.LOCATION_SERVICE);
// Get our last known location
Location location = lm.getLastKnownLocation(
LocationManager.NETWORK_PROVIDER);
if (location == null) {
location = lm.getLastKnownLocation(
LocationManager.GPS_PROVIDER);
}
return location;
}
return null;
}
Noi' non sono stato in grado di riprodurre questo problema su qualsiasi dispositivo che abbiamo a disposizione. Qualcuno ha già incontrato prima questo problema?
Questa è solo una speculazione, ma che ha l'odore di una ROM personalizzata con qualche tipo di problema con i servizi di Google Play. Scoprirò ulteriormente i dispositivi con cui stai avendo problemi, quali sono, quali sono i giri di Android in esecuzione e hanno una sorta di ROM personalizzata o altra personalizzazione che interferisce con Google Play? –
@CharlieCollins è d'accordo. La maggior parte dei dispositivi che abbiamo visto con questo problema è Android 4.2.2 di Galaxy Nexus. Non ho ancora informazioni sulla build specifica in esecuzione. – twaddington
Stiamo riscontrando anche questo problema e sembra che sia dovuto a una ROM personalizzata. –