CloseableReference: Finalized without closing

本文详细介绍了在ListView或GridView中使用Fresco时遇到的CloseableReference:Finalizedwithoutclosing异常的解决办法,包括关闭硬件加速、调整图片尺寸等步骤。同时,还提供了解决动态加载so文件失败的方法。

在ListView或者GridView使用fresco时,发生了异常:

W/unknown:CloseableReference: Finalized without closing

解决办法:
第一步、关闭硬件加速

android:hardwareAccelerated="false"

第二步、改变图片尺寸,变小

ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(uri)
.setResizeOptions(new ResizeOptions(mItemWidth, mItemWidth));

“CloseableReference: Finalized without closing” in SimpleDraweeView / ListView

使用ResizeOptions时,你可能某些手机又会遇到找不到xxx.so文件,就是so文件加载失败。
解决办法:
第一种、使用fresco 0.8.1的版本
第二种、使用静态语块手动加载so文件

static {
      try {
        SoLoaderShim.loadLibrary("webp");
      } catch(UnsatisfiedLinkError nle) {
      }
}

java.lang.ExceptionInInitializerError after update 0.9.0

HDFS集群未完成最终化(cluster is not finalized)是一种常见的问题,通常出现在HDFS升级、回滚或文件系统操作过程中。当HDFS处于“未最终化”状态时,意味着系统尚未确认新的文件系统状态为稳定可用,这可能导致某些操作受限或数据不一致风险。 ### HDFS未最终化的原因 1. **正在进行升级操作** 当执行`hdfs upgrade`命令后,HDFS进入一个临时状态,此时系统会保留旧版本的元数据和数据块以防止升级失败。在升级完成后,必须手动运行`hdfs dfsadmin -finalizeUpgrade`来确认升级成功并清理旧数据。如果未执行该步骤,系统将持续显示“HDFS cluster is not finalized”警告[^1]。 2. **升级失败或中断** 如果升级过程中出现异常(如NameNode崩溃、网络中断等),HDFS可能无法自动完成最终化过程,导致集群停留在中间状态。 3. **正在进行回滚操作** 在尝试回滚到旧版本时,HDFS同样需要进行最终化操作来确认回滚完成。如果未完成最终化,集群状态也会被标记为未最终化。 4. **手动干预缺失** 某些情况下,虽然升级或回滚已完成,但由于运维人员未执行最终化命令,系统仍然认为集群状态不稳定。 ### 解决方法 #### 1. 确认当前集群状态 可使用以下命令查看集群是否处于升级或回滚状态: ```bash hdfs dfsadmin -report ``` 输出中若包含类似 `Upgrade in progress` 或 `Rollback in progress` 的信息,则说明集群尚未最终化。 #### 2. 执行最终化操作 若确认升级已完成且无错误,可执行以下命令完成最终化: ```bash hdfs dfsadmin -finalizeUpgrade ``` 此命令将删除旧版本的元数据和数据块备份,释放磁盘空间并使新版本正式生效。 #### 3. 回滚并最终化 如果升级失败,需先执行回滚: ```bash hdfs dfsadmin -rollback ``` 回滚完成后,再执行最终化命令: ```bash hdfs dfsadmin -finalizeUpgrade ``` #### 4. 强制最终化(谨慎操作) 在某些极端情况下,如NameNode元数据损坏但已确认升级成功,可以考虑强制跳过检查并最终化。此操作应仅在确认安全的前提下进行,并建议提前备份关键数据。 ### 注意事项 - 在执行最终化之前,请确保所有DataNode正常运行,且NameNode处于活跃状态。 - 最终化是不可逆操作,一旦执行将无法回滚至旧版本。 - 建议在维护窗口期间执行此类操作,并提前做好元数据和配置的备份。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值