2017-07-16 45 views
5

mogę dostać jakieś logi awariach Crashlytics z następującym stosu:Czy istnieje sposób, aby śledzić ten wyjątek: szukaj ostrości powrócił widok, który nie był w stanie podjąć skupić

Fatal Exception: java.lang.IllegalStateException: focus search returned a view that wasn't able to take focus! 
    at android.widget.TextView.onKeyUp(TextView.java:6413) 
    at android.view.KeyEvent.dispatch(KeyEvent.java:2712) 
    at android.view.View.dispatchKeyEvent(View.java:9960) 
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630) 
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630) 
    at android.widget.ScrollView.dispatchKeyEvent(ScrollView.java:387) 
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630) 
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630) 
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630) 
    at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:406) 
    at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1798) 
    at android.app.Activity.dispatchKeyEvent(Activity.java:3024) 
    at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:320) 
    at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4331) 
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4302) 
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853) 
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906) 
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872) 
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999) 
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880) 
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056) 
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853) 
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906) 
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872) 
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880) 
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853) 
    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6247) 
    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6221) 
    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6182) 
    at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3651) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6121) 
    at java.lang.reflect.Method.invoke(Method.java) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 

Najbliżej odpowiedź mogę znaleźć jest tutaj: Fatal crash: Focus search returned a view that wasn't able to take focus

Ale moje pytanie brzmi: jak mogę znaleźć źródło tej awarii? Trudno go wskazać od dziennika awarii nie objaśnia wystarczająco dużo o dokładnym źródłem gdzie katastrofa rzeczywiście

+0

Która wersja Androida dotyczy? Widziałem to pod Androidem 7.1.2 i Androidem 8.0.0, ale tylko wtedy, gdy używano starego motywu. Możesz spróbować użyć pliku activity.setTheme, aby ustawić nowoczesny motyw lub motyw kompatybilności. To nie odpowiada na twoje pytania, jak śledzić źródło tej awarii, ale może naprawia awarię. – Dominique

Odpowiedz

0

Rozwiązałem to awarię w moim projekcie, wywołując metodę setNextFocusDownId (dziedziczona z widzenia) na moich EditTexts jawnie poinstruuj Androida, który widok ma zostać zwrócony w następnej kolejności po przeprowadzeniu wyszukiwania fokusu. (Jeśli nie zrobisz tego wyraźnie, Android sam zdecyduje, jaki jest następny widok, który można ustawić jako dostępny).

+0

Postaram się Ci przekazać, dziękuję za Twoją sugestię. –