- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
恐怕由于图像大小的原因我会遇到错误,但我没有太多的代码知识。如何修复下面的源代码?
================================================== ===========================
Logcat 错误消息:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: im.r_c.android.puz, PID: 18376
java.lang.RuntimeException:
android.os.TransactionTooLargeException: data parcel size 1245464
bytes
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4006)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: android.os.TransactionTooLargeException: data parcel size 1245464 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:748)
at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:4636)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3998)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
================================================== =========================
这是一个益智游戏App.two Activity源码
GameActivity.java
public class GameActivity extends AppCompatActivity {
private static final String TAG = "GameActivity";
public static final int SPAN_COUNT = 3;
public static final int BLANK_BRICK = 8;
public static final int[][] GOAL_STATUS = {{0, 1, 2}, {3, 4, 5}, {6, 7, BLANK_BRICK}};
public static final int MAIL_GAME_STARTED = 100;
public static final int MAIL_STEP_MOVED = 101;
public static final int MAIL_GAME_WON = 102;
public static final int REQUEST_CODE_CHOOSE_PICTURE = 100;
private Bitmap mFullBitmap;
private Bitmap[] mBitmapBricks = new Bitmap[SPAN_COUNT * SPAN_COUNT];
private Timer mTimer;
private long mStartTime;
private int mStepCount;
private TextView mTvTime;
private TextView mTvStep;
private Button mBtnChooseAndStart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
window.setEnterTransition(new Explode());
window.setExitTransition(new Explode());
}
setContentView(R.layout.activity_game);
Mailbox.getInstance().atHome(this);
mTvTime = findViewById(R.id.tv_time);
mTvStep = findViewById(R.id.tv_step);
mBtnChooseAndStart = findViewById(R.id.btn_choose_and_start);
}
}
选择Activity.java
public class ChooseActivity extends AppCompatActivity {
private static final int CHOOSER_SPAN_COUNT = 2;
private final int[] mResIds = new int[]{
R.mipmap.pic_1, R.mipmap.pic_2, R.mipmap.pic_3,
R.mipmap.pic_4, R.mipmap.pic_5, R.mipmap.pic_6,
R.mipmap.pic_7, R.mipmap.pic_8
};
private Uri[] mUris = new Uri[mResIds.length];
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
private static int REQUEST_PERMISSION_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose);
for (int i = 0; i < mResIds.length; i++) {
mUris[i] = ResUtils.getUriOfResource(this, mResIds[i]);
}
initView();
}
private void initView() {
RecyclerView recyclerView = findViewById(R.id.rv_pics);
assert recyclerView != null;
CommonRecyclerViewAdapter<Uri> adapter = new CommonRecyclerViewAdapter<Uri>(this, mUris, R.layout.choose_pic_item) {
@Override
public void onItemViewAppear(ViewHolder holder, Uri uri, int position) {
holder.setViewImageResource(R.id.iv_image, mResIds[position]);
}
};
adapter.setOnItemClickListener(new CommonRecyclerViewAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
returnUri(mUris[position]);
}
});
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new GridLayoutManager(this, CHOOSER_SPAN_COUNT));
recyclerView.addItemDecoration(new SquareGridSpacingItemDecoration(this, R.dimen.brick_divider_width));
}
}
如何修改源代码?
最佳答案
当服务和应用程序之间交换大量数据时,就会发生这种情况(这涉及传输大量缩略图)。实际上数据大小约为500kb,IPC事务缓冲区大小设置为1024KB。我不确定为什么它超出了事务缓冲区。
当您通过 Intent extra 传递大量数据时,也可能会发生这种情况。因此,最终解决此 TransactionTooLarge 异常的方法是识别具有其从属 fragment 、 View 等的 Activity,将数据包添加到 bundle 中。然后我在上述 Activity 中运行了这段代码:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//Clear the Activity's bundle of the subsidiary fragments' bundles.
outState.clear();
}
这为我解决了这个问题。希望这可以帮助那里的人!
关于java - Android运行时: FATAL EXCEPTION: main Process data parcel size 1245464 bytes error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56411933/
我有以下代码: foreach (byte b in bytes) { byte inv = byte.MaxValue - b; // Add the new value to a
我需要从这个文本文件source.txt中读取内容并将内容反向写入这个文本文件destination.txt。读取和写入必须使用逐字节完成! 我使用 BufferedReader 和 Buffered
我需要存储大量 RGB 颜色对象。对于某些常见用途,这些占用了我的应用程序总内存的 8% 到 12%。我目前将其定义如下: class MyColor { byte red; byte green;
我有一个由字节数组表示的整数。 byte[] result = getResult(); resultInt1 = Integer.parseInt(Bytes.toString(result));/
我正在尝试使用 Rusoto 库调用 AWS Lambda 函数。该请求有一个 JSON 编码的有效负载,我目前将其作为一个字符串,但该库为此坚持使用 bytes::bytes::Bytes 结构。我
我正在尝试基于 Tokio's example 编写一个 TCP 服务器. 当我尝试发送缓冲区时,编译器返回错误 0277。 我的代码:(playground) extern crate tokio;
我知道我可以通过 IList 进行枚举,例如: public byte[] ConvertToByteArray(IList> list) { IList newList = new List
考虑这样一个文本文件: Some text here. --- More text another line. --- Third part of text. 我想把它分成三部分,用---分隔符分开。
如果我有一个字节变量:byte b = 0; 为什么以下工作: b++; b += 1; // compiles ...但这不是吗? b = b + 1; // compile er
我有一个简单的字节数组,我想从中获取颜色。我的计划是用红色表示三位,绿色表示三位,蓝色表示两位。 8 位。 我认为颜色是正确的: 如有错误请指正 byte[] colours = new byte[
我的目标是比较两个字节数组中的两个字符串值。它实际上需要创建两个新的字符串对象才能使用 contains 方法。是选择正确还是有什么办法可以使用优化方式而不使用新的关键字。 if(new String
我正在使用github.com/tarm/serial来连接一些串行仪器。在开发过程中,我使用/dev/ttyp0和/dev/ptyp0对,其中go进程连接到一个,我使用screen连接到另一个。我编
好的,所以如果一个字节是 8 位,那么半字节就是 4 位。并且您可以将四分之一字节作为 2 位(尽管我想,如果有的话,它会被称为双位)。 虽然这是一致的,但如果我使用这个词,有人会感到困惑(或惊讶)吗
我在解释文件时遇到问题。文件构建如下: "name"-@-"date"-@-"author"-@-"signature" 签名是一个字节数组。当我读回文件时,我将其解析为 String 并拆分它: m
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
Java 让我很难过,因为它需要 ArrayList 的包装类秒。我将如何添加 byte[]到 ArrayList ? 最佳答案 LOL 认为我必须包装所有东西。 ArrayList作品。谢谢一晒。
我有一个 16 字节的 md5 散列,我需要使用 XOR 将其“折叠”成 4 字节数据:{1st 4 bytes} XOR {2nd 4 bytes} XOR {3rd 4 bytes} XOR {4
我正在学习SMSC smc91cx驱动代码,我学习了如何根据Application Note 9-6的说明编写smc91c111网卡的测试代码。 .我无法理解“传输数据包”下的以下说明: Write
我必须附加(可变数量的)字节数组。集合似乎只适用于包装类,即 Byte。大约 20 小时后,我想到了这个,并且它有效,但我想知道它是否可以改进(添加到列表,但欢迎任何其他改进建议:),即 Collec
我有两个基本相同的操作: insert_bytes(from, count) delete_bytes(start, stop) -> delete_bytes(from, count) insert
我是一名优秀的程序员,十分优秀!