langsmith
langsmith

Reputation: 2546

"Can't pass null for argument 'pathString' in child()" and other Proguard and Firebase issues

I'm at wits end with Proguard and Firebase. Proguard seems to be causing issue after issue with the release version of my Play Store app.

Here's what's is currently in my proguard-rules.pro file:

-keepattributes Signature

-keepclassmembers class com.test.finalapp.models.** { *;}


-keep class com.test.finalapp.viewholders.** { *; }

-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }

-keepattributes *Annotation*
-keepclassmembers class ** {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

-keepclassmembers class ** { public void onEvent*(**); }

I'm using a FirebaseUI RecyclerView adapter and that adapter's viewholder class is in the viewholders package name. So that's what that line in the proguard-rules.pro file is for.

Side question: Does capitalization matter in the proguard-rules file? Should viewholders be capitalized in "com.test.finalapp.viewholders" if my package is named "Viewholders"?

ANYWAYS, here's the latest logcat error that I can't figure out:

09-16 16:16:46.899 882-882/? E/UncaughtException: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
                                                      at com.google.firebase.database.g.a(Unknown Source)
                                                      at com.test.finalapp.Activities.PreMainActivities.c.a(Unknown Source)
                                                      at com.google.firebase.database.p.a(Unknown Source)
                                                      at com.google.android.gms.c.ha.a(Unknown Source)
                                                      at com.google.android.gms.c.iv.b(Unknown Source)
                                                      at com.google.android.gms.c.jb.run(Unknown Source)
                                                      at android.os.Handler.handleCallback(Handler.java:739)
                                                      at android.os.Handler.dispatchMessage(Handler.java:95)
                                                      at android.os.Looper.loop(Looper.java:152)
                                                      at android.app.ActivityThread.main(ActivityThread.java:5507)
                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
09-16 16:16:47.102 882-882/? D/FirebaseCrashApiImpl: throwable java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()

                                                     --------- beginning of crash
09-16 16:16:47.141 882-882/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               Process: com.test.finalapp, PID: 882
                                               java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
                                                   at com.google.firebase.database.g.a(Unknown Source)
                                                   at com.test.finalapp.Activities.PreMainActivities.c.a(Unknown Source)
                                                   at com.google.firebase.database.p.a(Unknown Source)
                                                   at com.google.android.gms.c.ha.a(Unknown Source)
                                                   at com.google.android.gms.c.iv.b(Unknown Source)
                                                   at com.google.android.gms.c.jb.run(Unknown Source)
                                                   at android.os.Handler.handleCallback(Handler.java:739)
                                                   at android.os.Handler.dispatchMessage(Handler.java:95)
                                                   at android.os.Looper.loop(Looper.java:152)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5507)
                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

I have no clue what ""Can't pass null for argument 'pathString' in child()" means, nor what to adjust to solve the problem. Thoughts? I couldn't find any solutions online before posting this question...

Upvotes: 3

Views: 3000

Answers (1)

Tord Larsen
Tord Larsen

Reputation: 2836

I noticed that when putting variables in the Android Studio Watches windows, and one of them is a static ref like this, hence the StreetsId.PUSH_ID

country + "/"+ FirebaseManager.STREET_ADDRESS +"/"+ snapshot.child(StreetsId.PUSH_ID).getValue()

The Watches window is producing that error message in the Android Studio debugger console window indeed.

Upvotes: 1

Related Questions