Android Studio出现Can't process class [com/tencent/wxop/stat/al.class]

本文提供了一种复杂但有效的解决方案,用于解决在Eclipse项目移植到Android Studio时遇到的Can't process class未知堆栈映射帧类型错误。通过修改ProGuard源代码并重新打包,最终替换原有SDK中的ProGuard文件,从而解决了这一棘手问题。

最近在一个eclipse移植到Android Studio的项目出现了以下非常难解决的错误!
错误如下:

Can't process class [com/tencent/wxop/stat/a.class](Unknown verification type [95] in stack map frame)

查了好多方法,谷歌什么的都看了,最后只有以下能解决,过程非常复杂。

以下解决的方法为转载!

  1. 查看自己android studio安装目录下的gradle/m2repository/net/sf/proguard/proguard-base 查看自己当前对应的proguard版本
    2.去官网https://sourceforge.net/projects/proguard/files/proguard/下载对应的版本。
    3.下载proguard后解压,在src/proguard/classfile文件当中找到源码的ClassConstant.java类,然后将ATTR_StackMapTable 的值修改成 “dummy”(原值为StackMapTable)
    4.因为下载的proguard源码里面没有ant文件、proguard-android.txt、proguard-android-optimize.txt、proguard-project.txt文件,所以需要到自己的sdk里面tools/proguard/下所需文件复制过来。
    5.使用ant从新打包proguard。ant打包可参考 http://glblong.blog.51cto.com/3058613/1536516 注:下载的proguard源码里有个build或buildscripts文件夹,统一改成build。
    6.将打包好后的proguard 把sdk中原本的proguard文件夹替换掉 注:如果害怕出问题的童鞋可以把原来的proguard文件夹事先拷贝出一份
    7.替换好proguard后 重启android studio,从新打包,到了这里有的童鞋可能已经可以了正常打包了。但是可能有的还是会出现同样的问题。出问题的可以继续往下看了。
    8.接下来请看图文 首先在工程目录下创建一个proguard的文件夹,然后将自己打包的proguard/lib/下的proguard.jar拷贝到proguard文件夹里面

在这里插入图片描述

然后在build.gradle里面进行引用 对应的版本
在这里插入图片描述
最后回到android stuido安装目录下的gradle/m2repository/net/sf/proguard/proguard-base下对应的proguard版本的文件中,用proguard/lib下的proguard.jar将其中的proguard-base-x.x.jar给替换掉,重启android studio,大功告成。

### 查看 Linux 中 mmcblk0 块设备的统计信息 在 Linux 系统中,块设备的统计信息通常存储在 `/sys/class/block/<device>/stat` 文件中,其中 `<device>` 是具体的块设备名称。对于 `mmcblk0` 块设备,可以通过读取 `/sys/class/block/mmcblk0/stat` 文件来获取其统计信息[^3]。 统计信息文件中的内容是一个由空格分隔的数值列表,每个数值代表特定的指标。以下是这些字段的具体含义: 1. **读请求数**:设备接收到的读请求总数。 2. **读扇区数**:设备完成的读操作涉及的扇区总数。 3. **读操作总耗时(毫秒)**:设备完成所有读操作所花费的总时间。 4. **写请求数**:设备接收到的写请求总数。 5. **写扇区数**:设备完成的写操作涉及的扇区总数。 6. **写操作总耗时(毫秒)**:设备完成所有写操作所花费的总时间。 7. **I/O 操作次数**:当前正在进行的 I/O 操作数量。 8. **I/O 操作总耗时(毫秒)**:设备处理所有 I/O 操作所花费的总时间。 以下是一个示例代码片段,用于读取并解析 `mmcblk0` 的统计信息: ```bash #!/bin/bash # 定义统计文件路径 STAT_FILE="/sys/class/block/mmcblk0/stat" # 检查文件是否存在 if [ ! -f "$STAT_FILE" ]; then echo "Error: File $STAT_FILE does not exist." exit 1 fi # 读取统计信息 read reads r_sectors r_time writes w_sectors w_time in_flight io_time < "$STAT_FILE" # 输出统计信息 echo "mmcblk0 Statistics:" echo "-------------------" echo "Read Requests: $reads" echo "Read Sectors: $r_sectors" echo "Read Time (ms): $r_time" echo "Write Requests: $writes" echo "Write Sectors: $w_sectors" echo "Write Time (ms): $w_time" echo "In-flight I/O: $in_flight" echo "Total I/O Time (ms): $io_time" ``` 运行上述脚本后,将输出 `mmcblk0` 块设备的详细统计信息[^3]。 ### 注意事项 - 如果系统中未挂载或未启用 `mmcblk0` 设备,则 `/sys/class/block/mmcblk0/stat` 文件可能不存在。 - 统计信息以毫秒为单位记录时间,因此在分析性能时需要注意单位转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值