【问题标题】:android.os.TransactionTooLargeException error in AndroidAndroid中的android.os.TransactionTooLargeException错误
【发布时间】:2019-06-04 01:25:05
【问题描述】:

我的 Android 应用程序返回 android.os.TransactionTooLargeException 时遇到问题,即使我清除了 Fragment 中的所有数据。

从我实现的片段 - 请参阅下面的代码,我启动了一个新活动,该活动开始但一秒钟后 android.os.TransactionTooLargeException 被抛出。我试图清理所有捆绑包等,因此片段尽可能简单,但它会抛出:

java.lang.RuntimeException: android.os.TransactionTooLargeException: 数据包大小 608932 字节。

请问您知道问题出在哪里吗?

public class ShowDetailFragment extends Fragment {

  public static boolean was207Called = false;

  public interface ExpandViewListener {
    void onExpandClicked();
  }

  public void setFullScreenListener(ExpandViewListener listener) {
  }

  public ShowDetailFragment() {
  }

  @Nullable
  @Override
  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_show_detail, null, true);
    return v;
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
  }

  @Override
  public void onResume() {
    super.onResume();
  }

  @Override
  public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, null);
    Intent i = new Intent(getActivity().getApplicationContext(), ForgottenPasswordActivity.class);
    startActivity(i);
    return;
  }

  @Override
  public void onPause() {
    super.onPause();
  }

  @Override
  public void onSaveInstanceState(Bundle outState) {
  }

  public void onFragmentRemoved() {
    Log.d("XXXXX", "Frag removed");
  }

  @Override
  public void onStop() {
    super.onStop();
    Log.d("XXXX", "Stopping");
  }
}

【问题讨论】:

  • 尝试将您的 viewCreated() 方法代码移动到 onResume() 方法
  • onSaveInstanceState 不调用 super,为什么
  • 因为错误说包裹的大小太大了......但它应该是1MB?!你在调用 ShowDetailFragment 时放入了什么?请参阅此问题以供参考...stackoverflow.com/q/28667438/7177329

标签: android kotlin runtimeexception


【解决方案1】:

请尝试:-

public class ShowDetailFragment extends Fragment {

  public static boolean was207Called = false;

  public interface ExpandViewListener {
    void onExpandClicked();
  }

  public void setFullScreenListener(ExpandViewListener listener) {
  }

  public ShowDetailFragment() {
  }

  @Nullable
  @Override
  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_show_detail, container, false);
    return v;
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
  }

  @Override
  public void onResume() {
    super.onResume();

    Intent i = new Intent(getActivity(), 
    ForgottenPasswordActivity.class);
    startActivity(i);
  }

  public void onFragmentRemoved() {
    Log.d("XXXXX", "Frag removed");
  }

  @Override
  public void onStop() {
    super.onStop();
    Log.d("XXXX", "Stopping");
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多