【问题标题】:Android: Non-fatal Exception: java.lang.StackOverflowError at android.widget.TextView.canMarquee(TextView.java:6970)Android:非致命异常:android.widget.TextView.canMarquee 处的 java.lang.StackOverflowError(TextView.java:6970)
【发布时间】:2016-08-19 09:34:51
【问题描述】:

我在运行 OS Jelly Bean(4.2.1) 的设备上运行我的 android 应用程序时遇到了 stackoverflow 异常。此文本视图是回收站视图中项目的一部分。 SOE 导致应用程序突然崩溃。我在下面粘贴堆栈跟踪。请帮助调试。

Non-fatal Exception: java.lang.StackOverflowError
   at android.graphics.Paint.getTextRunAdvances(Paint.java:1948)
   at android.graphics.Paint.getTextRunAdvances(Paint.java:1809)
   at android.graphics.Paint.getTextRunAdvances(Paint.java:1782)
   at android.text.TextLine.handleText(TextLine.java:755)
   at android.text.TextLine.handleRun(TextLine.java:907)
   at android.text.TextLine.measureRun(TextLine.java:414)
   at android.text.TextLine.measure(TextLine.java:293)
   at android.text.TextLine.metrics(TextLine.java:267)
   at android.text.Layout.getLineExtent(Layout.java:955)
   at android.text.Layout.getLineWidth(Layout.java:921)
   at android.widget.TextView.canMarquee(TextView.java:6970)
   at android.widget.TextView.onDraw(TextView.java:4894)
   at android.view.View.draw(View.java:13905)
   at android.view.View.getDisplayList(View.java:12741)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.draw(View.java:13806)
   at android.view.View.getDisplayList(View.java:12741)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.widget.ListView.drawChild(ListView.java:3302)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.widget.AbsListView.dispatchDraw(AbsListView.java:2384)
   at android.widget.ListView.dispatchDraw(ListView.java:3297)
   at android.view.View.draw(View.java:13806)
   at android.widget.AbsListView.draw(AbsListView.java:3875)
   at android.view.View.getDisplayList(View.java:12741)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.draw(View.java:13806)
   at android.support.v4.view.ViewPager.draw(ViewPager.java:2341)
   at android.view.View.getDisplayList(View.java:12741)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.design.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1131)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.draw(View.java:13806)
   at android.view.View.getDisplayList(View.java:12741)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1373)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.getDisplayList(View.java:12739)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.View.draw(View.java:13519)
   at android.view.ViewGroup.drawChild(ViewGroup.java:3019)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2883)
   at android.view.View.draw(View.java:13806)
   at android.widget.FrameLayout.draw(FrameLayout.java:467)
   at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2228)
   at android.view.View.getDisplayList(View.java:12741)
   at android.view.View.getDisplayList(View.java:12785)
   at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1249)
   at android.view.ViewRootImpl.draw(ViewRootImpl.java:2480)
   at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2340)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2142)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1139)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4879)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776)
   at android.view.Choreographer.doCallbacks(Choreographer.java:579)
   at android.view.Choreographer.doFrame(Choreographer.java:548)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762)
   at android.os.Handler.handleCallback(Handler.java:725)
   at android.os.Handler.dispatchMessage(Handler.java:92)
   at android.os.Looper.loop(Looper.java:153)
   at android.app.ActivityThread.main(ActivityThread.java:5297)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
   at dalvik.system.NativeStart.main(NativeStart.java)

【问题讨论】:

标签: android android-recyclerview stack-overflow textview


【解决方案1】:

可能你使用了<android.support.design.widget.TextInputLayout/>这个标签并且你想改变它可能来的文本颜色。

 <style name="TextLabel" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
    <!-- Hint color and label color in FALSE state -->
   <!-- <item name="android:textColorHint">@color/white</item>-->
    <!--<item name="android:textSize">20sp</item>-->
    <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
    <item name="colorAccent">@color/white</item>
    <item name="colorControlNormal">@color/white</item>
    <item name="colorControlActivated">@color/white</item>
</style>

现在你用

在标签下调用这个样式
android:theme="@style/TextLabel"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多