DeadObjectException при попытке использовать Places SDK - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь использовать Places SDK для Android, но сталкиваюсь с проблемами при попытке получить доступ к текущему месту с помощью PlaceDetectionClient.getCurrentPlace (). Я добавил неограниченный ключ API в файл манифеста и включил Places SDK в консоли Google. Мой код указан ниже, а внутри Сервиса:

try {
    mPlaceDetectionClient.getCurrentPlace(null)
    .addOnSuccessListener(new OnSuccessListener<PlaceLikelihoodBufferResponse>() {
        @Override
        public void onSuccess(PlaceLikelihoodBufferResponse likelyPlaces) {
            if (likelyPlaces != null && likelyPlaces.getCount() > 0) {
                int bestIndex = 0;
                float bestLikelihood = likelyPlaces.get(0).getLikelihood();
                for (int i = 1; i < likelyPlaces.getCount(); i++) {
                    if (likelyPlaces.get(i).getLikelihood() > bestLikelihood) {
                        bestIndex = i;
                    }
                }
                PlaceManager.setPlace(likelyPlaces.get(bestIndex).getPlace());
            }
            else {
                Log.e(TAG, "place was null!");
            }
            likelyPlaces.release();
            stopSelf();
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.e(TAG, "place failure!" + e);
            stopSelf();
        }
    });
} catch (SecurityException se) {
    Log.e(TAG, "SecurityException when getting place");
    stopSelf();
}

Конкретная ошибка, которую я получаю, заключается в следующем и повторяется каждые пять секунд в течение двух минут:

11-08 13:41:33.426 3398-3429/domain.temp.wearapp E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 284)
11-08 13:41:33.432 3398-3429/domain.temp.wearapp W/GmsClient: IGmsServiceBroker.getService failed
    android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:748)
        at com.google.android.gms.common.internal.IGmsServiceBroker$Stub$zza.getService(Unknown Source:13)
        at com.google.android.gms.common.internal.BaseGmsClient.getRemoteService(Unknown Source:244)
        at com.google.android.gms.common.api.internal.zabo.run(Unknown Source:8)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.os.HandlerThread.run(HandlerThread.java:65)

Через две минуты он перестает пытаться повторить попытку и выдает следующее исключение при вызове onFailure:

11-08 13:41:35.429 3398-3398/domain.temp.wearapp E/PlaceService: place failure!com.google.android.gms.common.api.ApiException: 8: INTERNAL_ERROR

Я часами пытался решить эту проблему путем поиска в Интернете и настройки различных вещей (изначально это был IntentService), но мне не повезло. Буду очень признателен за любую помощь!

...