java.lang.IllegalStateException解决合集

2023-05-16

1、跑monkey时报错,只定位到了是哪一个模块出的问题,但没有定位代码位置,大概是指Handler的问题

java.lang.IllegalStateException

The specified message queue synchronization barrier token has not been posted or has already been removed. android.os.MessageQueue.removeSyncBarrier(MessageQueue.java:587)

因为没有定位到代码中的具体位置,所以我搜了一下网上的解决方案,google翻译给出的结果是:指定的消息队列同步屏障令牌尚未发布或已经被删除。大概是指Handler的问题。

所以可以尝试一下以下解法:

解决1

原因:在线程中向主线程发消息时使用的Message对象已经被发送过(通俗来讲就是Message对象被重用了)。

解决:在每次发送message前都new一个新的message对象

tips:   可以看一下Massege msg1=new Message() 、Massege msg2=Message.obtain()、

       Message msg3 = Handler.obtainMessage()的区别

解决2:

在handlerMessage()方法中添加this.obtainMessage()

(这个解决方法没有尝试,而且答者也没有给出具体原因)

解决3:

原因:因为子线程刷新UI引起

private HandlerThread mHandlerThread;
private Handler mHandler;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mHandlerThread = new HandlerThread(TAG);
    mHandlerThread.start();
    mHandler = new Handler(mHandlerThread.getLooper()); //子线程中有looper
}

public void initView(){
 mAnimation.setAnimationListener(new Animation.AnimationListener() {
      @Override
      public void onAnimationStart(Animation animation){
        mHandler.postDelayed(()->{
          showAnination();
        },500);  //在子线程中刷新了UI
      ....     
}
      

(学徒浅谈Android——从HandlerThread谈myLooper()和getMainLooper() - 程序员大本营)可以看一下这篇,解释了为什么是子线程

解决:

(记录一个Android崩溃 MessageQueue - 掘金)这位答主给的解决方案是判断是否在子线程,如果在子线程则post到主线程

其实也可以直接重新在主线程new一个新的handler,使用这个新的handler去刷新UI

2、java.lang.IllegalStateException导致了crash,报错位置定位到了代码中handleMassge方法中

可以尝试一下捕获这个IllegalStateException异常

@Override
public void handleMessage(@NonNull Message msg) {
    super.handleMessage(msg);
    if (msg.what == 1) {
        try {
            ....
        } catch (IOException | IllegalStateException ex) {
            ex.printStackTrace();
        }
    }
}

持续更新中......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.lang.IllegalStateException解决合集 的相关文章

  • 将所有 BigDecimal 运算设置为特定精度?

    我的Java程序以高精度计算为中心 需要精确到至少120位小数 因此 程序中所有非整数都将由 BigDecimal 表示 显然 我需要指定 BigDecimal 的舍入精度 以避免无限小数表达式等 目前 我发现必须在 BigDecimal
  • 在java中将RFC3339 DateTime转换为Date [重复]

    这个问题在这里已经有答案了 如何转换RFC 3339 https www rfc editor org rfc rfc3339java 中的 com google api client util DateTime 到 DateTime 例如
  • 使用Java获取CSS文件中图像的URL?

    我正在尝试使用 Java 获取远程 CSS 文件中图像 所有 MIME 类型 的 URL 我正在使用 jsoup 来获取 css 的 URL 经过无数个小时的观看CSS解析器 http cssparser sourceforge net 由
  • 使用 google-api-java-client 的 2 足 OAuth

    有谁知道如何将 2 legged OAuth 与 google api java client 一起使用 我正在尝试访问 Google Apps 配置 API 以获取特定域的用户列表 以下不起作用 HttpTransport transpo
  • 如何显示/隐藏jsf组件

    在我的一个 JSF 应用程序中 顶部的标题部分包含 selectOneMenu 底部的内容部分显示过滤器组件 默认情况下 应用程序首先在顶部显示 selectOneMenu 数据 在底部显示相应的 Filter 信息 如果用户选择不同的se
  • @Cachable 在没有输入参数的方法上?

    我有问题 org springframework cache annotation Cachable注解 Bean public ConcurrentMapCache cache return new ConcurrentMapCache
  • IntSummaryStatistics的summaryStatistics方法

    为什么空 IntStream 上的 summaryStatistics 方法返回整数的最大和最小值作为流中存在的最大和最小 int 值 IntStream intStream IntStream of IntSummaryStatistic
  • 解密 TLS 1.2 AES-GCM 数据包

    我正在开发一个 Java 程序来解密TLS 1 2正在使用的会话TLS RSA WITH AES 128 GCM SHA256密码 我使用wireshark 录制了一个测试会话 这大师秘密是已知的 No Time Protocol Leng
  • 属性文件中的字符串主机名:Java

    这听起来可能是一个非常简单的问题 但我无法找到解决方法 我有一个 config properties 文件 其中包含两个键值 IP 地址和端口号 我读取此配置文件以提取字符串格式的键值 但是 当我尝试使用这些值时 我无法连接到从配置文件中检
  • 在 JavaFX 中更改 ListView 字体大小

    我想知道如何更改 JavaFx 中的列表视图项目文本字体大小 每行文本的大小会有所不同 我尝试使用细胞因子属性 但我不知道如何使用它 有人可以帮我吗 类似的问题在这里 如何更改JavaFX中ListView的字体大小 https stack
  • 为什么java(>=7版本)不支持运行没有main方法的程序? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 class WithoutMain static System out println Without main class Sy
  • 读取不失真的灰度 PNG 图像文件

    我需要读取和处理大量的灰度 PNG 文件 我的意思是 如果它们在 Photoshop 或 GIMP 中打开 则图像模式为灰度 而不是具有灰度值的 RGB 图像 ImageIO 似乎没有实现这一点 它似乎将所有图像文件视为 sRGB 这会破坏
  • 将 XML 从网站解析到 Android 设备

    我正在启动一个 Android 应用程序 它将解析来自网络的 XML 我创建了一些 Android 应用程序 但它们从未涉及解析 XML 我想知道是否有人对最佳方法有任何建议 这是一个例子 try URL url new URL your
  • 通过 ssh 发送命令并读取输出结果

    我有代码通过 ssh 连接到远程服务器并向其发送 2 个或更多命令 例如 cd export home ops bin和 viewlinkload time 20131205 19 但我没有看到命令执行 也没有收到结果 我需要获取服务器返回
  • Eclipse 在单独的窗口中打开代码

    我正在 eclipse 中编程 在两个显示器设置上运行 在其中一台显示器上 我只获得了项目资源管理器和编辑器作为自定义透视图 而在另一台显示器上 我获得了其他工具 例如控制台 调试 任务 变量 断点等 例如 当我单击任务视图中的任务时 这将
  • 有没有办法处理Java堆空间异常[重复]

    这个问题在这里已经有答案了 我正在寻找将文件输入流转换为大文件 文件大小为 100MB 并且抛出 java lang OutOfMemoryError Java Heap space import java io FileInputStre
  • 如何从 jenkins 的现有项目生成 .hpi 插件

    我正在尝试使用 jenkins 的性能插件 但最新版本存在一些问题 如链接中所述 https issues jenkins ci org browse JENKINS 27100 https issues jenkins ci org br
  • Jackson 的 ObjectMapper 和 SQL 中的 RowMapper

    我们正在使用对象映射器 当将 ObjectMapper 与 RowMapper 一起使用时 是否应该在每个 mapRow 内部 如下所示 声明它 还是在 mapRow 外部声明为类公共成员 我认为根据本文 它应该作为公共类成员在外部 我应该
  • 删除Java中重载的方法

    有2个重载方法 这些方法中的每一个都将一种类型的列表转换为不同类型的列表 但第一种方法使用比较器 class SomeClass public static
  • 安装 JDK 时出错:keytool 命令需要已安装的 proc fs (/proc)。 Linux 的 Windows 子系统

    我尝试在 Linux 的 Windows 子系统 Ubuntu 14 04 上安装 Oracle JDK 1 7 但出现以下错误 the keytool command requires a mounted proc fs proc Jav

随机推荐

  • angularJS绑定数据时自动转义html字符串

    angular js转换字符串形式的html标签 在保存数据到数据库的时候有些保存一个商品的描述数据 会直接保存这个文件描述中的一些html标签 当在数据库拿这个数据的时候用angular显示会直接字符串 显示下列这样 span class
  • 【K8S 一】使用kubeadm工具快速部署Kubernetes集群(单Master)

    此为安装部署单Master集群 xff0c 如需高可用Master集群 xff0c 请一并参考 K8S 五 使用kubeadm工具快速部署Kubernetes集群 Master高可用集群 目录 安装前配置 依赖包安装 kube proxy开
  • [Scala Shell脚本执行]

    Scala语言来自于Scalable xff08 可伸缩的 xff09 xff0c 既可以写一些小的脚本 xff0c 又可以写一写复杂的服务器端的程序 scala支持源文件解释执行 xff0c jar执行 xff0c 各有利弊 本文主要介绍
  • 全息投影技术

    1 概念 全息投影技术 xff08 front projectedholographic display xff09 也称 虚拟成像 技术是利用干涉和衍射原理记录并再现物体真实的 三维 图像的技术 全息投影技术不仅可以产生立体的空中幻像 x
  • Android Settings源码结构分析与自实现

    最近的项目一直是按照PRD与高清 xff0c 修改系统设置 xff0c 调整布局 间距 颜色 xff0c 涉及到一些流程的更改与自定义控件 xff0c 以及对settings源码结构的研究 在项目相对空闲是 xff0c 做个整理记录 由于项
  • 程序员的职业规划

    在这个节点讲讲我对职业发展路径的理解 xff0c 另外就是理一理脑子里的一些思路 过段时间再看此文又可能是另一番理解 很多路从后往前看的时候总会有遗憾 xff0c 要是当初怎么怎么样就会怎么怎么样 导致这样的原因的第一个原因是人在做决策的时
  • 深度思考Java成员变量的初始化

    写Java代码的时候很少去关注成员变量的声明和初始化顺序 xff0c 今天借此机会抛出一些问题 xff1a 语言的设计者们为什么会这样设计 xff1f 比如说很常见的一个问题 xff1a abstract xff08 抽象 xff09 类不
  • 生产者消费者模型(二)-引入ArrayBlockingQueue

    前言 在 生产者消费者模型你知道多少 中简单的模拟了一个生产者消费者模型 有些网友对我的实现提出了很多质疑 我在文章的结尾也对抛出了一个问题 xff1a 在添加的过程中可能出现数据丢失的情况 xff0c 应该怎么处理 xff1f 在代码中也
  • 存储系统的实现-探析存储的机制和原理

    这一篇主要想写写一些自己对于存储的思考和领悟 xff0c 因为有些东西自己实践过 xff0c 所以感触过更加深一些 xff0c 技术上我还是认为自己实现和看别人的代码在感触上是不同的 这里假设一个图书馆 xff0c 假如说书就是要我们要放的
  • 毕业四年

    直至目前毕业已经快四年 xff0c 我的经历代表了大多数普通程序员的经历 xff0c 没有牛人传奇的经历 xff0c 甚至连进入这个职业都是一种偶然 xff0c 只是因为分数不够被调剂到计算机专业 很多人可能会有和我一样的经历甚至一样的困惑
  • 最佳实践:AtomicInteger实现边界值控制

    最佳实践 xff1a AtomicInteger实现边界值控制 前言 这篇文章主要讲两部分 xff0c 一部分简单的讲了一下AtomicInteger和LongAdder的实现对比 xff0c 这部分不会讲太细 xff0c 因为有更好的文章
  • Java多线程并发锁和原子操作,你真的了解吗?

    前言 对于Java 多线程 xff0c 接触最多的莫过于使用synchronized xff0c 这个简单易懂 xff0c 但是这synchronized并非性能最优的 今天我就简单介绍一下几种锁 可能我下面讲的时候其实很多东西不会特别深刻
  • Huawei 鲲鹏(ARM/Aarch64)服务器安装kvm虚拟机

    硬件 类别 项目 要求 硬件 服务器 TaiShan 200服务器 xff08 型号2280 xff09 CPU 鲲鹏920处理器 RAID卡 Avago 3508 操作系统 项目 要求 银河麒麟 银河麒麟高级服务器操作系统V10 部署KV
  • 我的六年程序之路

    以前看刘未鹏的 我在南大的七年 xff0c 就在感叹每个人的人生迥异 和大牛之间的差距加重了我对自己的卑微 写下这篇日志一方面是为了记录我这和计算机的六年 xff0c 也是缅怀过去 xff0c 反思自己 或许大部分程序员有着一样的迷茫和困惑
  • 深入探析Java线程锁机制

    今天在iteye上提了一个关于 43 43 操作和线程安全的问题 xff0c 一位朋友的回答一言点醒梦中人 xff0c 至此我对Java线程锁有了更加深刻的认识 在这里也做个总结供大家参考 先看几段代码吧 xff01 代码一 xff1a p
  • 喇叭发声原理

    喇叭发声原理 音频设备中负责发出声音的核心部件是扬声器 xff0c 俗称喇叭 xff0c 无论是音响还是耳机 xff0c 其中都少不了这个关键部件 扬声器是一种把电信号转变为声信号的换能器件 喇叭 下面这个喇叭的侧视图能够很好的帮我们了解喇
  • win7 开WiFi共享

    创建 xff08 cmd xff09 xff1a netsh wlan set hostednetwork mode 61 allow ssid 61 user key 61 12345678 在网络连接 本地连接 属性 共享 xff1a
  • 《JAVA开发日常问题》一、修改IDEA路由代码不生效

    一 问题出现 1 重新启动过IDEA xff0c 没有关闭之前的项目 2 重新打开IDEA修改路由代码 xff0c 新增了个路由接口 xff0c 怎么访问都不成功不生效 二 问题排查 1 最开始百度了下 xff0c 说可以删除 idea文件
  • 数据仓库【实时数仓】

    目录 1 数据仓库简介 2 数据仓库的发展 3 数据仓库建设方法论 3 1 面向主题 3 2 为多维数据分析服务 3 3 反范式数据模型 4 数据仓库架构的演变 4 1 离线大数据架构 4 2 Lambda 架构 4 3 Kappa 架构
  • java.lang.IllegalStateException解决合集

    1 跑monkey时报错 xff0c 只定位到了是哪一个模块出的问题 xff0c 但没有定位代码位置 xff0c 大概是指Handler的问题 java lang IllegalStateException The specified me