Java.lang.SecurityException: недопустимое имя пакета: com.google.android.gms

У меня есть эта странная трассировка стека при тестировании приложения на Samsung Galaxy S2 (GT-i9100), Android версии 4.3. Если это помогает, Bugsense сообщает также «данные журнала» = {u'ms_from_start ': u'19915', u'rooted ': u'true'}, поэтому я не совсем уверен, связано ли это устройство или нет (клиент Тестирует приложение, а не меня). EDIT: пока я набираю это, клиент подтвердил, что у устройства есть пользовательский ПЗУ, если это имеет значение.

Во всяком случае, это полная трассировка стека:

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) 

Теперь ARActivity.java:371 просто звонит

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

где

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

И locListener – это идентификатор местоположения.

Теперь я не знаю, что здесь может пойти не так, и я не могу воспроизвести эту ошибку на своих тестовых устройствах (Samsung Galaxy Tab2, Motorola Atrix 4G, Samsung Note2, Galaxy Nexus).

Я предполагаю, что может быть проверка com.google.android.gms каким-то образом, и, возможно, может быть Intent (или что-то еще), что в случае отсутствия этого пакета пользователь обновляет компонент устройства. Но я совершенно не уверен, если я С этим мышлением он идет в правильном направлении.

Любые идеи или опыт с этим сбоем?

Благодарю.

Solutions Collecting From Web of "Java.lang.SecurityException: недопустимое имя пакета: com.google.android.gms"

попробуй использовать

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

Под тегом приложения. пример

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

Некоторые устройства, которые я использую для тестирования, не имеют возможностей для поддержки gps и получения местоположения, вот почему я получил исключение

Msgstr "неверное имя пакета: com.google.android.gms"

Мы должны добавить необходимые разрешения

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

И очень важно добавить android: required = false " для GPS.

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

Дополнительная информация: < uses-feature >

Эти два вопроса очень похожи:

SecurityException при вызове getLastKnownLocation

Добавить Google Maps в мое приложение

Возможно, проблема связана с пользовательским ПЗУ, и вам нужно приложить проект библиотеки Android Play Services к вашему проекту .

Мне кажется, что на этом устройстве просто не установлено приложение GoogleApps. Пользовательский ПЗУ на самом деле может быть для этого намеком. Например, владелец этого устройства мог установить Cyanogenmod, но он забыл (или намеренно не установил) Google Apps, которые поставляются отдельно .