Невозможно передать значение null для аргумента pathString в child() и других проблемах Proguard и Firebase.

Я в тупике с Proguard и Firebase. Похоже, что Proguard вызывает проблему за проблемой с выпускной версией моего приложения Play Store.

Вот что сейчас находится в моем файле proguard-rules.pro:

-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*(**); }

Я использую адаптер FirebaseUI RecyclerView, и класс viewholder этого адаптера находится в имени пакета viewholders. Вот для чего нужна эта строка в файле proguard-rules.pro.

Побочный вопрос: имеет ли значение использование заглавных букв в файле proguard-rules? Должны ли вьюхолдеры писаться с заглавной буквы в «com.test.finalapp.viewholders», если мой пакет называется «Вьюхолдеры»?

В ЛЮБОМ СЛУЧАЕ, вот последняя ошибка logcat, которую я не могу понять:

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)

Я понятия не имею, что означает «Невозможно передать null для аргумента« pathString »в child ()» и что нужно настроить для решения проблемы. Мысли? Я не смог найти никаких решений в Интернете, прежде чем опубликовать этот вопрос...


person langsmith    schedule 16.09.2016    source источник
comment
та же проблема :(   -  person Maxgmer    schedule 08.11.2016


Ответы (1)


Я заметил, что при размещении переменных в окнах Android Studio Watches, и одна из них является статической ссылкой, подобной этой, отсюда и StreetsId.PUSH_ID

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

Окно Watches действительно выдает это сообщение об ошибке в окне консоли отладчика Android Studio.

person Tord Larsen    schedule 10.11.2016