2013-02-26 4 views
5

Nasza aplikacja Android losowo zawiesza się (bardzo trudno wyleczyć problem) z następującym śladem stosu. Jest to widoczne, gdy orientacja urządzenia zmienia się z portretu na krajobraz z dzienników logcat. Również ten problem pojawił się na urządzeniach z wersją Androida 4.0.3. Czyli chciałeś sprawdzić, czy jest to znany problem z 4.0.3? Nie jestem pewien z kodu, jak debugować ten problem, ponieważ śledzenie stosu jest w całości platformą Android bez udziału kodu aplikacji.android 4.0.3 ScrollingTabContainerView NullPointerException

02-21 17:44:01.761 E/UncaughtException(3344): java.lang.NullPointerException 
02-21 17:44:01.761 E/UncaughtException(3344): at com.android.internal.widget.ScrollingTabContainerView.onItemSelected(ScrollingTabContainerView.java:352) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.AdapterView.fireOnSelected(AdapterView.java:882) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.AdapterView.selectionChanged(AdapterView.java:865) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:1017) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.AdapterView.handleDataChanged(AdapterView.java:999) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:179) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.Spinner.onMeasure(Spinner.java:285) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.View.measure(View.java:12723) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.HorizontalScrollView.measureChildWithMargins(HorizontalScrollView.java:1159) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.HorizontalScrollView.onMeasure(HorizontalScrollView.java:303) 
02-21 17:44:01.761 E/UncaughtException(3344): at com.android.internal.widget.ScrollingTabContainerView.onMeasure(ScrollingTabContainerView.java:117) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.View.measure(View.java:12723) 
02-21 17:44:01.761 E/UncaughtException(3344): at com.android.internal.widget.ActionBarView.onMeasure(ActionBarView.java:878) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.View.measure(View.java:12723) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
02-21 17:44:01.761 E/UncaughtException(3344): at com.android.internal.widget.ActionBarContainer.onMeasure(ActionBarContainer.java:173) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.View.measure(View.java:12723) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.View.measure(View.java:12723) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
02-21 17:44:01.761 E/UncaughtException(3344): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2092) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.View.measure(View.java:12723) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.os.Looper.loop(Looper.java:137) 
02-21 17:44:01.761 E/UncaughtException(3344): at android.app.ActivityThread.main(ActivityThread.java:4424) 
02-21 17:44:01.761 E/UncaughtException(3344): at java.lang.reflect.Method.invokeNative(Native Method) 
02-21 17:44:01.761 E/UncaughtException(3344): at java.lang.reflect.Method.invoke(Method.java:511) 
02-21 17:44:01.761 E/UncaughtException(3344): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
02-21 17:44:01.761 E/UncaughtException(3344): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
02-21 17:44:01.761 E/UncaughtException(3344): at dalvik.system.NativeStart.main(Native Method) 
+0

znalazłeś rozwiązanie? – Frank

+0

Te informacje nie wystarczą, niestety ten dziennik nie informuje nas o awarii aplikacji, gdy ten problem się powtórzył, spróbuj uzyskać następny plik "/data/anr/traces.txt", ten plik zapisze inne dzienniki awarii aplikacji . Może będzie trzeba zobaczyć trochę kodu i dowiedzieć się więcej o tym, co tworzy aplikację. –

+0

Dziękuję. ANR traces.txt zawiera tylko dzienniki sprzed miesięcy, co mogło być prawdą do wczoraj, ponieważ nie używam tego konkretnego tabletu, ale dzisiaj i wczoraj miałem wiele awarii, których tam nie ma. I tylko napotkałem awarię na Androida 4.0.3, inne wersje są w porządku. Dzieje się tak w przypadku zmiany orientacji. Problem polega na tym, że nie widzę, gdzie (lub jeśli) jest inicjowany z mojego własnego kodu. – Frank

Odpowiedz

-1

Naprawdę nie mam pojęcia, skąd ten błąd pochodzi. Naprawiłem go zmieniając

<item name="android:windowActionBarOverlay">false</item> 

do

<item name="android:windowActionBarOverlay">true</item> 

w moim głównym stylu dla Androida V15. To sprawia, że ​​moja aplikacja jest trochę mniej piękna dla tej wersji Androida, ale to jest w porządku. Mam nadzieję, że to tylko błąd 4.0.3, mam 6 tabletów z innymi wersjami Androida, które działają dobrze.

+0

To nie ** rozwiązuje problem. Zaimplementowałem to i nadal widzę te NPE na poziomie API 15. – Kai