Сбой Android com.google.android.gms.common.api.internal.TaskUtil.setResultOrApiException - PullRequest
0 голосов
/ 10 октября 2018

Я получил некоторые из этих сбоев на моих крашлитиках, но не смог воспроизвести их.Я пытаюсь выяснить, что послужило причиной аварии.

Fatal Exception: com.google.android.gms.f.f: com.google.android.gms.common.api.b: 8: 
       at com.google.android.gms.tasks.zzu.getResult(Unknown Source:17)
       at com.ordinaryman.android.referral.ReferralManager.init(Unknown Source:18)
       at com.ordinaryman.android.referral.ReferralManager$$Lambda$2.onComplete(Unknown Source:11)
       at com.google.android.gms.tasks.zzj.run(Unknown Source:23)
       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.app.ActivityThread.main(ActivityThread.java:6938)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Caused by com.google.android.gms.common.api.b: 8: 
       at com.google.android.gms.common.api.internal.TaskUtil.setResultOrApiException(Unknown Source:12)
       at com.google.android.gms.internal.measurement.zzyn.zza(Unknown Source:2)
       at com.google.android.gms.internal.measurement.zzys.dispatchTransaction(Unknown Source:21)
       at com.google.android.gms.internal.measurement.zzo.onTransact(Unknown Source:22)
       at android.os.Binder.execTransact(Binder.java:682)

Я пытаюсь создать динамическую ссылку из Firebase.Это код, который, я думаю, вероятно, вызывает проблему:

try {

            generateShortenedDeepLink(context, code, refId, src, imageUrl).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    if (onDoneLoading != null) {
                        onDoneLoading.run();
                    }

                    log.error("Error generating deeplink", e);

                    if (context instanceof BaseActivity) {
                        ((BaseActivity) context).showToastWarn("Error generating code. ");
                    }

                    return;
                }
            }).addOnCompleteListener(task -> {

                BaseActivity act;
                act = (BaseActivity) context;

                String defaultMessage = "Hi, come join me on this app ";
                String linkUrl = task.getResult().getShortLink().toString();
                String textMessage = defaultMessage + " " + linkUrl;

                if (StringUtils.isEmpty(imageUrl)) {
                    shareHandler(act, textMessage, null);
                    if (onDoneLoading != null) {
                        onDoneLoading.run();
                    }
                    return;
                }

                String filename = imageUrl.substring(imageUrl.lastIndexOf('/') + 1);
                File cachePath = new File(context.getCacheDir(), "images");
                cachePath.mkdirs(); // don't forget to make the directory
                File imageFile = new File(cachePath, filename);

                Runnable continuation = () -> {
                    Uri contentUri = FileProvider.getUriForFile(context, context.getPackageName(), imageFile);
                    shareHandler(act, textMessage, contentUri);
                    if (onDoneLoading != null) {
                        app.getMainHandler().postDelayed(onDoneLoading, 3000);
                    }
                };

                if (imageFile.exists()) {
                    continuation.run();
                    return;
                }

                if (act.isNoMoUIChanges()) return;

                Glide.with(context)
                        .asBitmap()
                        .load(imageUrl)
                        .into(new SimpleTarget<Bitmap>() {

                            @Override
                            public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {

                                try (FileOutputStream stream = new FileOutputStream(imageFile)) {
                                    resource.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                                } catch (IOException e) {
                                    log.error("Error generating share", e);
                                    if (onDoneLoading != null) {
                                        onDoneLoading.run();
                                    }
                                    return;
                                }
                                continuation.run();
                            }
                        });
            });

        } catch (Exception e) {
            if (context instanceof BaseActivity) {
                ((BaseActivity) context).showToastWarn("Error generating code. Please try again later");
            }
        }

Может ли кто-нибудь указать мне правильное направление?ТИА

1 Ответ

0 голосов
/ 24 октября 2018

Проблема, которая вызвала это при построении короткой динамической ссылки Firebase, по какой-то причине не удалась.Работа вокруг меня заключалась в том, чтобы создать длинную ссылку, а затем создать короткую ссылку.

Uri dynamicLinkUri = dynamicLink.getUri(); //this is long link
 return FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLongLink(dynamicLinkUri)
        .buildShortDynamicLink();

Еще одна вещь, которую я добавил, была дополнительная проверка, чтобы увидеть, если запрос успешен или нет.

addOnCompleteListener(task -> {
if(!task.isSuccessful()) return;

Ссылка:

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...