gpt4 book ai didi

android - View 拖放更新时出现 stackoverflow 错误

转载 作者:可可西里 更新时间:2023-11-01 19:08:25 36 4
gpt4 key购买 nike

我正在使用 ondragListener 进行 View 拖动。我的根目录是 viewgroup,在根目录中有更多的 viewgroup 容器,并在容器内添加了像 imageview/textview 这样的 View 。

如果我使用像 linearlayout 这样的唯一容器(ViewGroup)进行拖放,它的工作正常但是如果我开始添加像 imageview 这样的 View 在这些容器内并且仍在拖动点的是仅包含此 View 的容器。

onActionDrop 收到 stackoverflow 错误:堆栈大小 8MB

onActionDrop 代码是:

if (e.getAction()==DragEvent.ACTION_DROP) {
final View view = (View) e.getLocalState();
final ViewGroup from = (ViewGroup) view.getParent();
from.removeView(view);
final LinearLayout toView = (LinearLayout) v;
toView.addView(view);}

错误日志:

 java.lang.StackOverflowError: stack size 8MB
android.view.ViewGroup.resetResolvedLayoutDirection(ViewGroup.java:6546)
android.os.TransactionTooLargeException: data parcel size 26840220 bytes
android.os.BinderProxy.transactNative(Native Method)
android.os.BinderProxy.transact(Binder.java:503)
android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4425)
com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:90)
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)

最佳答案

我认为您应该查看 TransactionTooLarge 异常而不是 StackOverflow 异常。 TransactionTooLarge 有时很难追踪,但通常它与在 Activity/Fragment 之间发送或存储在 savedInstanceState 。正如@eduyayo 在上面的评论中指出的那样,您可以看看这篇文章:

What to do on TransactionTooLargeException

我前段时间遇到过类似的错误,这是由于一个巨大的列表正在从一个 Activity 传递到一个 Fragment,而崩溃本身发生在一个完全随机的地方。

关于android - View 拖放更新时出现 stackoverflow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39721347/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com