update studio manager last known google example current java android gps locationmanager

studio - java.lang.SecurityException: nombre de paquete no válido: com.google.android.gms



location manager android example (4)

tratar de usar

<uses-library android:name="com.google.android.gms" />

bajo la etiqueta de la aplicación. Ejemplo

<application android:icon="@drawable/icon" android:label="@string/app_name" > <uses-library android:name="com.google.android.gms" />

Tengo esta traza de pila extraña al probar la aplicación en Samsung Galaxy S2 (GT-i9100), versión de Android 4.3. Si ayuda, Bugsense informa también "datos de registro" = {u''ms_from_start '': u''19915'', u''rooted '': u''true''}, por lo que no estoy seguro de si este dispositivo está rooteado o no (cliente está probando la aplicación, no yo). EDITAR: Mientras estoy escribiendo esto, el cliente me confirmó que el dispositivo tiene una ROM personalizada, si es que importa.

De todos modos, este es un rastro de pila completo:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackagename/com.mypackagename.activities.ARActivity}: java.lang.SecurityException: invalid package name: com.google.android.gms at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.access$600(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5303) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 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:1431) at android.os.Parcel.readException(Parcel.java:1385) at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:540) at android.location.LocationManager.requestLocationUpdates(LocationManager.java:836) at android.location.LocationManager.requestLocationUpdates(LocationManager.java:430) at android.privacy.surrogate.PrivacyLocationManager.requestLocationUpdates(PrivacyLocationManager.java:290) at com.mypackagename.activities.ARActivity.onCreate(ARActivity.java:371) at android.app.Activity.performCreate(Activity.java:5259) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1098) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309)

Ahora, ARActivity.java:371 está llamando

locationManager.requestLocationUpdates(GPS, gpsRefreshPeriod, 0, locListener);

dónde

private String GPS = "gps"; private int gpsRefreshPeriod = 500;

y locListener es locationListener.

Ahora, no tengo idea de qué podría salir mal aquí, y no puedo reproducir este error en mis dispositivos de prueba (Samsung Galaxy Tab2, Motorola Atrix 4G, Samsung Note2, Galaxy Nexus).

Supongo que podría haber un control para com.google.android.gms de alguna manera, y tal vez podría haber intención (o algo) que en caso de perder ese paquete, el usuario actualiza el componente del dispositivo ... Pero no estoy totalmente seguro de si Estoy yendo en la dirección correcta con este pensamiento.

Alguna idea o experiencia con este accidente?

Gracias.


Algunos dispositivos que uso para probar no tienen capacidades para admitir gps y obtener la ubicación, esa fue la razón por la cual obtuve la excepción

"nombre de paquete inválido: com.google.android.gms"

Debemos agregar permisos requeridos

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

y es muy importante agregar android: required = false " para GPS.

<uses-feature android:name="android.hardware.location.gps" android:required="false" />

Más información: < uses-feature >


Me parece que este dispositivo simplemente no tiene instalada la aplicación GoogleApps. La ROM personalizada en realidad puede ser una pista para esto. Por ejemplo, un propietario de este dispositivo podría haber instalado Cyanogenmod pero ha olvidado (o deliberadamente no ha instalado) Google Apps, que se suministran por separado .