java.lang.StackOverFlow错误。怀疑太多的意见?太多、错误、意见、java

2023-09-12 02:17:21 作者:海的味道鱼知道

当你得到一个错误,如下面的(安卓1.5),这是因为有太多的嵌套ViewGroups,或者因为浏览总数过大?有没有什么技巧来解决它,同时仍保持相同的外观到你的应用程序?

  java.lang.StackOverflowError
   在android.text.Styled.measureText(Styled.java:371)
   在android.text.Layout.measureText(Layout.java:1600)
   在android.text.Layout.getLineMax(Layout.java:654)
   在android.text.Layout.draw(Layout.java:310)
   在android.text.BoringLayout.draw(BoringLayout.java:356)
   在android.widget.TextView.onDraw(TextView.java:3921)
   在android.view.View.draw(View.java:5838)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.widget.AbsListView.dispatchDraw(AbsListView.java:1319)
   在android.widget.ListView.dispatchDraw(ListView.java:2820)
   在android.view.View.draw(View.java:5944)
   在android.widget.AbsListView.draw(AbsListView.java:2121)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.View.draw(View.java:5841)
   在android.widget.FrameLayout.draw(FrameLayout.java:352)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.View.draw(View.java:5841)
   在android.widget.FrameLayout.draw(FrameLayout.java:352)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.View.draw(View.java:5841)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.View.draw(View.java:5841)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.View.draw(View.java:5841)
   在android.widget.FrameLayout.draw(FrameLayout.java:352)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   在android.view.View.draw(View.java:5841)
   在android.widget.FrameLayout.draw(FrameLayout.java:352)
   在com.android.internal.policy.impl.PhoneWindow $ DecorView.draw(PhoneWindow.java:1847)
   在android.view.ViewRoot.draw(ViewRoot.java:1217)
   在android.view.ViewRoot.performTraversals(ViewRoot.java:1030)
   在android.view.ViewRoot.handleMessage(ViewRoot.java:1482)
   在android.os.Handler.dispatchMessage(Handler.java:99)
   在android.os.Looper.loop(Looper.java:123)
   在android.app.ActivityThread.main(ActivityThread.java:3948)
   在java.lang.reflect.Method.invokeNative(本机方法)
   在java.lang.reflect.Method.invoke(Method.java:521)
   在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:782)
   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
   在dalvik.system.NativeStart.main(本机方法)
 

解决方案 Java收入排名倒数,TypeScript受欢迎程度超越Python Stack Overflow年度开发者调查报告

您有(方式)太多的嵌套布局。您可以检查出的官方Android的博客d.android.com得到关于如何优化布局的技巧和窍门。

When you get an error like the one below (Android 1.5), is it because there are too many nested ViewGroups, or because the total number of Views is too great? Are there any tricks to get around it while still keeping the same look to your app?

java.lang.StackOverflowError
   at android.text.Styled.measureText(Styled.java:371)
   at android.text.Layout.measureText(Layout.java:1600)
   at android.text.Layout.getLineMax(Layout.java:654)
   at android.text.Layout.draw(Layout.java:310)
   at android.text.BoringLayout.draw(BoringLayout.java:356)
   at android.widget.TextView.onDraw(TextView.java:3921)
   at android.view.View.draw(View.java:5838)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.widget.AbsListView.dispatchDraw(AbsListView.java:1319)
   at android.widget.ListView.dispatchDraw(ListView.java:2820)
   at android.view.View.draw(View.java:5944)
   at android.widget.AbsListView.draw(AbsListView.java:2121)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.View.draw(View.java:5841)
   at android.widget.FrameLayout.draw(FrameLayout.java:352)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.View.draw(View.java:5841)
   at android.widget.FrameLayout.draw(FrameLayout.java:352)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.View.draw(View.java:5841)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.View.draw(View.java:5841)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.View.draw(View.java:5841)
   at android.widget.FrameLayout.draw(FrameLayout.java:352)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.ViewGroup.drawChild(ViewGroup.java:1484)
   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
   at android.view.View.draw(View.java:5841)
   at android.widget.FrameLayout.draw(FrameLayout.java:352)
   at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847)
   at android.view.ViewRoot.draw(ViewRoot.java:1217)
   at android.view.ViewRoot.performTraversals(ViewRoot.java:1030)
   at android.view.ViewRoot.handleMessage(ViewRoot.java:1482)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:123)
   at android.app.ActivityThread.main(ActivityThread.java:3948)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:521)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
   at dalvik.system.NativeStart.main(Native Method)

解决方案

You have (way) too many nested layouts. You can check out the official Android blog at d.android.com to get tips and tricks on how to optimize layouts.

 
精彩推荐
图片推荐