我正在使用ondragListener
进行视图拖动。我的根是viewgroup
,在根目录中有更多viewgroup
个容器,并且在容器中添加了imageview/textview
之类的视图。
如果我使用唯一的容器(ViewGroup
)(例如linearlayout
)来拖放它的工作正常但是如果我开始在这些容器中添加imageview
之类的视图并且仍然拖动点是容器只持有这种观点。
onActionDrop
获得stackoverflow error : stack size 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)
答案 0 :(得分:0)
我认为您应该查看fig
异常而不是StackOverflow异常。 TransactionTooLarge有时可能很难追踪,但通常与TransactionTooLarge
/ Activity
之间发送的或存储在Fragment
中的过多数据有关。正如@eduyayo在上面的评论中指出的那样,你可以看一下这篇文章:
What to do on TransactionTooLargeException
我在一段时间内遇到了类似的错误,这是由于一个巨大的列表从一个Activity传递到一个片段而且崩溃本身发生在一个完全随机的地方。