У меня есть эта странная трассировка стека при тестировании приложения на 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 (или что-то еще), что в случае отсутствия этого пакета пользовательский компонент устройства обновления. Но я совершенно не конечно, если я пойду в правильном направлении с этим мышлением.
Любые идеи или опыт с этим сбоем?
Спасибо.