我在Android 4.0.3上的特定用户只报告过一次以下崩溃。我看到堆栈中没有引用我的代码,我想知道是否有人对可能导致此问题的原因有任何想法?
显然,不是最高优先级,因为它只报告过一次,但我仍然想了解。我无法在4.0.2上重现(我无法运行4.0.3模拟器)。
谢谢,
堆栈追踪:
java.lang.StackOverflowError
android.text.TextLine.handleRun(TextLine.java:986)
android.text.TextLine.measureRun(TextLine.java:430)
android.text.TextLine.measure(TextLine.java:295)
android.text.TextLine.metrics(TextLine.java:269)
android.text.Layout.getLineExtent(Layout.java:947)
android.text.Layout.draw(Layout.java:410)
android.text.BoringLayout.draw(BoringLayout.java:400)
android.widget.TextView.onDraw(TextView.java:5047)
android.view.View.draw(View.java:10983)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.getDisplayList(View.java:10420)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.widget.FrameLayout.draw(FrameLayout.java:450)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.widget.AbsListView.dispatchDraw(AbsListView.java:2092)
android.view.View.draw(View.java:10986)
android.widget.AbsListView.draw(AbsListView.java:3398)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.widget.FrameLayout.draw(FrameLayout.java:450)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.getDisplayList(View.java:10420)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.widget.FrameLayout.draw(FrameLayout.java:450)
android.widget.ScrollView.draw(ScrollView.java:1524)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.support.v4.view.ViewPager.draw(SourceFile:2336)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.getDisplayList(View.java:10420)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.support.v4.widget.DrawerLayout.drawChild(SourceFile:1373)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.getDisplayList(View.java:10420)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.widget.FrameLayout.draw(FrameLayout.java:450)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.getDisplayList(View.java:10420)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.view.View.getDisplayList(View.java:10422)
android.view.ViewGroup.drawChild(ViewGroup.java:2856)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
android.view.View.draw(View.java:10986)
android.widget.FrameLayout.draw(FrameLayout.java:450)
com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2198)
android.view.View.getDisplayList(View.java:10422)
android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:849)
android.view.ViewRootImpl.draw(ViewRootImpl.java:1942)
android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1666)
android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2474)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4447)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
dalvik.system.NativeStart.main(Native Method)
这是我的主要活动的XML(用户DrawerLayout
)。 Lint没有报告任何重要内容,我在这里看不到明显的问题。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- To show drawer over toolbar, move this down to right above frameLayout -->
<include
android:id="@+id/app_bar"
layout="@layout/app_bar" />
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_offwhite">
<FrameLayout
android:id="@+id/main_frag_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.nsouth.myapp.Activity_Main"
tools:ignore="MergeRootFrame" />
</RelativeLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="290dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:theme="@style/MyNavViewTheme"
app:headerLayout="@layout/nav_drawer_header"
app:menu="@menu/nav_drawer_menu" />
</android.support.v4.widget.DrawerLayout>
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginTop="-80dp"
android:id="@+id/snackbarPosition">
</android.support.design.widget.CoordinatorLayout>
<LinearLayout
android:id="@+id/tv_main_debug_area"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="-40dp"
android:visibility="visible"
android:paddingLeft="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/tv_debug_pfeatures_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="unknown" />
<TextView
android:id="@+id/tv_debug_pfeatures_daysremaining"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="unknown" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
确定您具有嵌套布局,以便您收到此错误。 See this question
此外还有layoutopt来修复分层布局问题,但现在在SDK工具修订版16之后被lint替换。
因此请使用lint
可以帮助您轻松识别和纠正代码结构质量的问题,并检查您的Android项目源文件是否存在潜在错误和优化改进以确保正确性,