microg / microg/GmsCore

[com.mcdonalds.mobileapp] npe becuase appUrl dont exists on com.google.firebase.dynamiclinks.internal.DynamicLinkData.deepLink

Open
#1,663 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
14.6k
Forks
3.2k
Avg merge
12d 11h
Merged PRs (30d)
4

Description

Affected app
Name: McDonalds
Package id: com.mcdonalds.mobileapp

Describe the bug
application crashes on start-up due to firebase.

To Reproduce
Steps to reproduce the behavior:

  1. Go to open app

System
Android Version: 11
Custom ROM: LineageOS 18.1

microG
microG Core version: v0.2.24.214816
microG Self-Check results: All ticked

Additional context

02-05 12:59:30.393 19070 19070 D AndroidRuntime: Shutting down VM
02-05 12:59:30.393 19070 19070 E AndroidRuntime: FATAL EXCEPTION: main
02-05 12:59:30.393 19070 19070 E AndroidRuntime: Process: com.mcdonalds.mobileapp, PID: 19070
02-05 12:59:30.393 19070 19070 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.contains(java.lang.CharSequence)' on a null object reference
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at mcdonalds.dataprovider.google.firebase.invites.FireBaseDynamicLink$2.onSuccess(SourceFile:23)
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at com.google.android.gms.tasks.zzm.run(SourceFile:5)
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at android.os.Handler.handleCallback(Handler.java:938)
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:99)
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:223)
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7664)
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
02-05 12:59:30.393 19070 19070 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
@Override // com.google.android.gms.tasks.OnSuccessListener
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
    DynamicLinkData dynamicLinkData;
    String str;
    .........
    PendingDynamicLinkData pendingDynamicLinkData2 = pendingDynamicLinkData;
    Uri parse = (pendingDynamicLinkData2 == null || (dynamicLinkData = pendingDynamicLinkData2.dynamicLinkData) == null || (str = dynamicLinkData.deepLink) == null) ? null : Uri.parse(str);
    .........
    String queryParameter4 = parse.getQueryParameter("appUrl"); <---- RETURN NULL
    if (queryParameter4.contains("gmalite-account-otp")) { <----- NPE
    .........
}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the FireBaseDynamicLink$2.onSuccess callback identified in the stack trace and inspect how DynamicLinkData.deepLink and the appUrl query parameter are handled. Reproduce the startup crash on Android 11 with the reported configuration; done means the app no longer crashes when appUrl is absent.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, firebase, java
Domain
mobile-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.