YungSherman
@YungSherman
Личинка программиста

Почему не работает релизная версия приложения?

Разрабатывал приложение на android с использованием Firebase и добавлением Google-аккаунта и столкнулся с проблемой. Дебаг-версия работает отлично: аккаунт добавляется, данные из таблицы загружаются. Решил запустить на устройстве релизный apk. Аккаунт вроде бы добавляется, но при загрузке данных приложение сразу же крашится. Вот такую ошибку показывает logcat:
E/AndroidRuntime: FATAL EXCEPTION: main
                                                   java.lang.RuntimeException: java.lang.NoSuchMethodException: <init> [class android.view.View]
                                                       at android.support.v7.widget.RecyclerView$a.c(Unknown Source)
                                                       at android.support.v7.widget.RecyclerView$o.a(Unknown Source)
                                                       at android.support.v7.widget.RecyclerView$o.a(Unknown Source)
                                                       at android.support.v7.widget.RecyclerView$o.c(Unknown Source)
                                                       at android.support.v7.widget.LinearLayoutManager$c.a(Unknown Source)
                                                       at android.support.v7.widget.LinearLayoutManager.a(Unknown Source)
                                                       at android.support.v7.widget.RecyclerView.N(Unknown Source)
                                                       at android.support.v7.widget.RecyclerView.onMeasure(Unknown Source)
                                                       at android.view.View.measure(View.java:17637)
                                                       at android.widget.RelativeLayout.measureChild(RelativeLayout.java:698)
                                                       at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:482)
                                                       at android.view.View.measure(View.java:17637)
                                                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
                                                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
                                                       at android.view.View.measure(View.java:17637)
                                                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
                                                       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
                                                       at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
                                                       at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
                                                       at android.view.View.measure(View.java:17637)
                                                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
                                                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
                                                       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2618)
                                                       at android.view.View.measure(View.java:17637)
                                                       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2019)
                                                       at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1152)
                                                       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1383)
                                                       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1065)
                                                       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5901)
                                                       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
                                                       at android.view.Choreographer.doCallbacks(Choreographer.java:580)
                                                       at android.view.Choreographer.doFrame(Choreographer.java:550)
                                                       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
                                                       at android.os.Handler.handleCallback(Handler.java:739)
                                                       at android.os.Handler.dispatchMessage(Handler.java:95)
                                                       at android.os.Looper.loop(Looper.java:211)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5389)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:372)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
                                                    Caused by: java.lang.NoSuchMethodException: <init> [class android.view.View]
                                                       at java.lang.Class.getConstructor(Class.java:531)
                                                       at java.lang.Class.getConstructor(Class.java:495)
                                                       at android.support.v7.widget.RecyclerView$a.c(Unknown Source) 
                                                       at android.support.v7.widget.RecyclerView$o.a(Unknown Source) 
                                                       at android.support.v7.widget.RecyclerView$o.a(Unknown Source) 
                                                       at android.support.v7.widget.LinearLayoutManager$c.a(Unknown Source) 
                                                       at android.support.v7.widget.LinearLayoutManager.a(Unknown Source) 
                                                       at android.support.v7.widget.LinearLayoutManager.a(Unknown Source) 
                                                       at android.support.v7.widget.LinearLayoutManager.c(Unknown Source) 
                                                       at android.support.v7.widget.RecyclerView.onMeasure(Unknown Source) 
                                                       at android.view.View.measure(View.java:17637) 
                                                       at android.widget.RelativeLayout.measureChild(RelativeLayout.java:698) 
                                                       at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:482) 
                                                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536) 
                                                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:436) 
                                                       at android.view.View.measure(View.java:17637) 
                                                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536) 
                                                       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436) 
                                                       at android.widget.LinearLayout.measureVertical(LinearLayout.java:722) 
                                                       at android.widget.LinearLayout.onMeasure(LinearLayout.java:613) 
                                                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536) 
                                                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:436) 
                                                       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2618) 
                                                       at android.view.View.measure(View.java:17637) 
                                                       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2019) 
                                                       at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1152) 
                                                       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1383) 
                                                       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1065) 
                                                       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5901) 
                                                       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) 
                                                       at android.view.Choreographer.doCallbacks(Choreographer.java:580) 
                                                       at android.view.Choreographer.doFrame(Choreographer.java:550) 

Что я делал перед этим:
1) В консоли Firebase добавил отпечатки релизного ключа SHA-1 и SHA-256.
2) Скачал новый файл google-services.json и заменил старый файл на него в проекте.
3) Cобрал apk и подписал этим ключом его.
4) Скинул apk на устройство.
В приложении используются фрагменты с RecyclerView.
Я не понимаю, что я мог упустить. В процессе гугления я видел какие-то зацепки, связанные с Proguard, но это мне ничего не дало.
  • Вопрос задан
  • 408 просмотров
Решения вопроса 1
YungSherman
@YungSherman Автор вопроса
Личинка программиста
Дело было в том, что у моего ViewHolder и его конструктора не было модификатора доступа. Нужно было выставить "public". Проблема решилась.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы