-
2021-05-28 06:31:06
有没有办法以编程方式在android 1.6中解压缩rar文件?
我已经尝试过JUNRAR,但有一些例外情况…
这是我的代码,使用junrar库成功打开rar文件后:
FileHeader fh=null;
while(true)
{
fh=rar.nextFileHeader();
if(fh==null) return false;
if(fh.isEncrypted()) continue;
//check file
if(!fh.isDirectory() && fh.getFileNameString().toLowerCase().endsWith(".jpg"))
{
try
{
File f=new File(tmppath+covername); //name of the destination file
OutputStream stream = new FileOutputStream(f);
rar.extractFile(fh, stream); //call junrar
stream.close();
return true;
}
catch (FileNotFoundException e1)
{
// TODO Auto-generated catch block
return false;
}
catch (RarException e)
{
// TODO Auto-generated catch block
return false;
}
catch (IOException e)
{
// TODO Auto-generated catch block
return false;
}
}
DDMS透视图显示此异常…?
ERROR/AndroidRuntime(2733): Uncaught handler: thread Thread-9 exiting due to uncaught exception
ERROR/AndroidRuntime(2733): java.lang.VerifyError: de.innosystec.unrar.unpack.ppm.SubAllocator
ERROR/AndroidRuntime(2733): at de.innosystec.unrar.unpack.ppm.ModelPPM.(ModelPPM.java:73)
ERROR/AndroidRuntime(2733): at de.innosystec.unrar.unpack.Unpack.(Unpack.java:43)
ERROR/AndroidRuntime(2733): at de.innosystec.unrar.Archive.doExtractFile(Archive.java:456)
ERROR/AndroidRuntime(2733): at de.innosystec.unrar.Archive.extractFile(Archive.java:440)
ERROR/AndroidRuntime(2733): at com.pmc.myRar.unrarCover(myRar.java:164)
ERROR/AndroidRuntime(2733): at com.pmc.myDataBase.addRar(myDataBase.java:541)
ERROR/AndroidRuntime(2733): at com.pmc.libraryActivity.addtoDB(libraryActivity.java:306)
ERROR/AndroidRuntime(2733): at com.pmc.libraryActivity$2.run(libraryActivity.java:240)
ERROR/AndroidRuntime(2733): at java.lang.Thread.run(Thread.java:1060)
谢谢,
pmc
解决方法:
您遇到了java.lang.Verify错误,很难确定.该库是否有源代码可以自己重新编译?该库可能是使用另一个jar的不同版本编译的.
解决方法:
标签:android
来源: https://codeday.me/bug/20191102/1993221.html
更多相关内容 -
安卓手机如何解压rar/zip/7z等压缩包 详细图解教程
2021-05-28 06:32:56关于(7z.001、7z.002之类的分卷文件),像这种分卷文件,当时想着软件都是“教科式”操作,应该一看就会用了,可是依旧有部分用户不会使用这款软件,所以今天就再写一个教程,关于安卓手机怎么解压rar/zip/7z等格式的...由于宅男吧论坛的资源大部分是通过
不过教程最后,关于(7z.001、7z.002之类的分卷文件),像这种分卷文件,
当时想着软件都是“教科式”操作,应该一看就会用了,可是依旧有部分用户不会使用这款软件,所以今天就再写一个教程,关于安卓手机怎么解压rar/zip/7z等格式的压缩包的。
提示:由于写的比较详细,步骤比较多,看着很麻烦,其实很简单,自己操作两遍就会了。另外,本篇教程以
下面开始教程:
一、前期准备
请先将百度网盘内的压缩包下载到手机上,如果不会下载,请参考这篇教程。
二、下载
三、设置ZArchiver软件
1、打开软件后,会弹出如下对话框,全部点击“确定”按钮。
2、如果提示“无权访问”(见下图)
请设置ZArchiver的软件权限,将软件的“读写手机存储”权限设置为允许,比如下图这样。
备注:由于安卓不同品牌手机,设置方法可能会不一样,如果不会设置软件权限,请自行百度自己手机品牌的设置方法。
经过上面的设置之后,我们重启一下ZArchiver软件,你会发现,之前的“无权访问”提示已经没有了,变成了下图中的文件目录样式。
四、找到解压文件
1、向下滑动,找到“BaiduNetdisk”这个文件夹。(如果不是百度网盘的文件,请自行查找文件位置。)
2、点击打开,下图中的“测试文件.7z”就是我提前下载好的压缩包(7z格式的)。
五、开始解压
1、点击“测试文件.7z”,然后在弹出的菜单中,选择“解压到当前目录”。
2、如果有解压密码,请输入解压密码。(下面图片中的“123456”,是测试文件的解压密码。自己解压时,请填写压缩包的实际解压密码,不要输入123456。)
3、稍等片刻,压缩包就解压成功了。(压缩包太大的话就耐心等待一下,不要着急。)
4、我们点击上面图片中的“测试文件”这个文件夹。(这个“测试文件”文件夹就是“测试文件.7z”解压出来的文件)
5、通过上面的图片,我们可以看到,压缩包内的两张图片已经被解压出来了,我们点击其中一张,再弹出的菜单中选择“打开”。
6、会弹出“打开方式”的对话框。
依照你自己的使用习惯,选择对应的软件,比如我们测试文件中的图片,我们就选择“查看图片”这款软件。(如果是视频文件,会让你选择视频播放器软件,请灵活变通。)
7、可以看到,图片打开正常,至此,安卓手机通过ZArchiver软件解压压缩包的教程结束,自己动手试试吧。
最后,说一种特殊情况,如果您要解压的压缩包是分卷格式,也就是后面带数字的那种,比如7z.001、7z.002、7z.003… zip、.z01、.z02、.z03… part1、part2、part3… 诸如此类的,需要把所有分卷文件全部下载完成,缺一个都无法解压。全部下载完成后,解压第一个分卷文件即可(7z第一个是001,zip第一个是zip,rar第一个是prat1),其他分卷文件不用管,会自动加载并解压。
另外,苹果手机解压百度网盘内压缩包的教程,请查看下面的文章。
-
android打开rar压缩文件
2021-01-04 03:41:06intent.setClassName(“com.rarlab.rar”, “com.rarlab.rar.MainActivity”); File file = new File(fileString); Uri data = Uri.fromFile(file); intent.setData(data); try { start... -
android解压rar文件
2019-09-29 21:34:26package ... import android.util.Log; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import de.innosystec.unrar.Archive; import de.innosys...package com.jxd.jxdtest.commonutil; import android.util.Log; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import de.innosystec.unrar.Archive; import de.innosystec.unrar.exception.RarException; import de.innosystec.unrar.rarfile.FileHeader; public class RarUtil { /** * 暂时不支持带密码的rar文件 */ private static final String TAG = "RARUtil"; public static void unrar(String srcPath,String unrarPath) throws RarException, IOException, Exception{ File srcFile = new File(srcPath); if(null == unrarPath || "".equals(unrarPath)){ unrarPath = srcFile.getParentFile().getPath(); } // 保证文件夹路径最后是"/"或者"\" char lastChar = unrarPath.charAt(unrarPath.length() - 1); if (lastChar != '/' && lastChar != '\\') { unrarPath += File.separator; } Log.d(TAG,"unrar file to :"+unrarPath); unrar(srcFile, unrarPath); } private static void unrar(File srcFile,String unrarPath) throws RarException, IOException, Exception{ FileOutputStream fileOut = null; Archive rarfile = null; try{ rarfile = new Archive(srcFile); FileHeader fh = rarfile.nextFileHeader(); while(fh!=null){ String entrypath = ""; if(fh.isUnicode()){//解決中文乱码 entrypath = fh.getFileNameW().trim(); }else{ entrypath = fh.getFileNameString().trim(); } entrypath = entrypath.replaceAll("\\\\", "/"); File file = new File(unrarPath + entrypath); Log.d(TAG,"unrar entry file :"+file.getPath()); if(fh.isDirectory()){ file.mkdirs(); }else{ File parent = file.getParentFile(); if(parent!=null && !parent.exists()){ parent.mkdirs(); } fileOut = new FileOutputStream(file); rarfile.extractFile(fh, fileOut); fileOut.close(); } fh = rarfile.nextFileHeader(); } rarfile.close(); } catch (Exception e) { throw e; } finally { if (fileOut != null) { try { fileOut.close(); fileOut = null; } catch (Exception e) { e.printStackTrace(); } } if (rarfile != null) { try { rarfile.close(); rarfile = null; } catch (Exception e) { e.printStackTrace(); } } } } /** * 需要commons-compress-1.18.jar */ // /** // * 解压缩7z文件 // * @param file 压缩包文件 // * @param targetPath 目标文件夹 // * @param delete 解压后是否删除原压缩包文件 // */ // private static void decompress7Z(File file, String targetPath, boolean delete){ // SevenZFile sevenZFile = null; // OutputStream outputStream = null; // try { // sevenZFile = new SevenZFile(file); // // 创建输出目录 // createDirectory(targetPath, null); // SevenZArchiveEntry entry; // // while((entry = sevenZFile.getNextEntry()) != null){ // if(entry.isDirectory()){ // createDirectory(targetPath, entry.getName()); // 创建子目录 // }else{ // outputStream = new FileOutputStream(new File(targetPath + File.separator + entry.getName())); // int len = 0; // byte[] b = new byte[2048]; // while((len = sevenZFile.read(b)) != -1){ // outputStream.write(b, 0, len); // } // outputStream.flush(); // } // } // } catch (IOException e) { // e.printStackTrace(); // }finally { // try { // if(sevenZFile != null){ // sevenZFile.close(); // } // if(outputStream != null){ // outputStream.close(); // } // } catch (IOException e) { // e.printStackTrace(); // } // } // } }
-
android rar,zip解压
2013-05-15 14:48:22自己编写的解压文件,可以用Java或者android上调用方法,用法已经写在文档里面 -
Java通用解压代码(RAR5,Zip,7Z)
2021-01-06 11:32:55使用Java解压文件 支持RAR5,Zip,7z ,代码只实现了这个三种,但是要想支持更多的可以查看代码。 支持跨平台。 以前的通用java解压都是坑人的,无语了。 -
java、android可用的zip、rar解压缩代码实现
2016-02-15 14:27:18找了很久的解决android(java也行)上zip、rar压缩文件解压缩的代码 ,在自己项目中试了很不错。 -
android 解压.ZIP文件实例
2019-07-27 01:49:56NULL 博文链接:https://yangguangfu.iteye.com/blog/705408 -
android 7z 解压库
2021-07-24 15:44:39android解压库支持解压rar,解压速度快,支持NDK,源码编译 High compression ratio in 7z format with LZMA and LZMA2 compression Supported formats: Packing / unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM... -
Android 解压缩文件
2019-06-24 17:27:02Android解压缩文件。Android原生的解压缩文件,使用时提供保存的路径即可 -
javaandroid可用的ziprar解压缩代码实现.rar
2019-07-30 11:01:07javaandroid可用的ziprar解压缩代码实现.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。 -
rar解压软件安卓中文
2021-06-06 16:16:37rar解压软件安卓中文专门为需要快速解压自己文件的小伙伴准备的好用的实用工具,帮助你快速能处理自己的文件信息,支持多种格式解压,相信不少的用户都会喜欢,赶紧下载最新的rar解压软件体验吧!软件介绍RARLAB ...rar解压软件安卓中文专门为需要快速解压自己文件的小伙伴准备的好用的实用工具,帮助你快速能处理自己的文件信息,支持多种格式解压,相信不少的用户都会喜欢,赶紧下载最新的rar解压软件体验吧!
软件介绍
RARLAB 出品的 RAR for Android 是一款老牌的多合一 / 原创 / 免费 / 简单易用 / 快速的压缩解压缩软件,同时还是一个基本款的文件管理器。一母同袍的 WinRAR 在 PC 平台可谓是无人不知无人不晓的明星软件。只是登录安卓平台 RAR 出生有点晚。RAR for Android 能压缩建立 RAR 及 ZIP 压缩文件,解压缩 RAR、ZIP、TAR、GZ、BZ2、XZ、7z、ISO、ARJ 压缩文件。而且还能一定程度的修复损坏的 ZIP 及 RAR 文件,RAR for Android 的基准测试与同根生的 WinRAR 基准测试兼容、分割档、加密、结实压缩、利用更多 CPU 内核来压缩数据……等等。
软件功能
RAR for Android 除了支持标准的 ZIP 文件,其 unzip 功能更支持 ZIP 及 ZIPX 格式,且附加 BZIP2、LZMA 及 PPMd 压缩技术。其 Unrar 指令能处理所有 RAR 版本的压缩文件,包含最新的 RAR5。另外 UDF 及 ISO9660 ISO 文件格式都能解压缩。可以说基本上 WinRAR 上面有的功能,安卓版本都有了,并且只有本软件能够创建 RAR 压缩包。
更新内容
打开基于TAR的存档格式的内容(例如tar.gz和tar.bz2)时,将显示进度条。
添加了对GZIP存档的提取支持,并带有可选的标头校验和字段。
修复了在某些Android 5设备上打开RAR帮助时崩溃的问题。
高级功能已解锁;
完全删除帮助文件夹;
优化的图形/ zipalign;
禁用/删除不需要的权限+接收者和服务;
Analytics(分析)/ Crashlytics(崩溃)已禁用。
相关新闻
RAR for Android是RARLAB为Android平台开发的压缩工具,可以创建RAR、ZIP压缩文件,可以解压RAR、ZIP、TAR、GZ、BZ2、XZ、7z、ISO、ARJ、BZIP2 ZIPX、LZMA、PPMd、UDF、 ISO9660 ISO文件格式。
RAR for Android主要功能:包含针对受损ZIP和RAR文件的修复命令,基准功能兼容WinRAR基准,恢复记录,常用和恢复卷,加密,利用多核CPU压缩数据。
-
如何在Android手机上解压缩rar / zip文件
2021-05-28 08:27:05如果要在Android手机上解压缩文件,则有两种方法: ES文件浏览器解压缩和文件管理器解压缩. 首先打开ES文件浏览器,然后找到要解压缩的压缩包,单击解压缩,然后选择放置解压缩文件的位置,最后确定解压缩. 或打开... -
手机rar解压支持分卷解压
2011-04-09 04:58:01FreeUnRAR 不支持文件名加密的RAR压缩包(即用WINRAR打开时需要先输入密码才能看到文件名的压缩包)有些压缩包压缩的时候使用的是“较好”或“最好”的压缩模式,由于RAR压缩算法的PPM内存原理,解压时占用的内存必须... -
安卓Android源码——安卓Android 在线下载压缩包并解压到指定目录.rar
2021-10-10 22:55:15安卓Android源码——安卓Android 在线下载压缩包并解压到指定目录.rar -
Android中文件的压缩和解压缩实例代码
2020-08-31 05:20:17主要介绍了Android中文件的压缩和解压缩,需要的朋友可以参考下 -
android解压rar和zip需要的两个jar包
2014-06-27 11:30:45文档http://blog.csdn.net/vjligi/article/details/35235285 -
安卓文件下载上传解压相关-Android在线下载压缩包并解压到指定目录源码.rar
2019-07-29 15:42:15Android 在线下载压缩包并解压到指定目录 源码.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。 -
rar文件手机上怎么打开 手机怎么打开zip文件
2021-06-04 01:18:52手机怎么打开rar,zip等压缩文件一直困扰不少机友们,尤其是不少朋友用手机下载了rar或者zip文件却不知道怎么查看里面的资料,跑跑车安卓网分享...下面我们以re管理器为例子讲述手机上解压rar文件的具体步骤。运行re... -
安卓文件下载上传解压相关-Android断点下载.rar
2019-07-29 15:42:32Android断点下载.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。 -
安卓文件下载上传解压相关-android平台的7z压缩与解压缩.rar
2019-07-29 15:42:47android平台的7z压缩与解压缩.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。 -
解压rar5压缩包
2021-08-03 11:13:49解压rar 经查阅资料 终于找到方法,亲测可用 依赖 <dependency> <groupId>com.github.axet</groupId> <artifactId>java-unrar</artifactId> <version>1.7.0-8</version... -
安卓IMG文件解压工具绿色版.rar
2019-09-03 10:17:43本工具可以打开安卓IMG格式的刷机文件,从中提取想要的资源,也可以直接全部导出到指定位置,或者整理后另存。可以识别2048 64格式的YAFF2 文件系统IMG能够浏览提取IMG内容。本版本为已注册版,无功能上的限制。... -
安卓文件下载上传解压相关-Android一个多线程下载应用并提示安装源码.rar
2019-07-29 15:41:14Android一个多线程下载应用并提示安装源码.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。 -
ZIP,RAR解压密码破解工具
2019-01-23 13:37:31支持ZIP RAR文件的解密工作,具体的使用方法可以查看下载文件说明。 -
安卓文件下载上传解压相关-android客户端上传图片到服务器的简单实现.rar
2019-07-29 15:41:57android客户端上传图片到服务器的简单实现.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。 -
安卓文件下载上传解压相关-android上传图片php接收.rar
2019-07-29 15:42:27android上传图片 php接收.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。 -
android-29.rar
2020-07-01 15:28:09android-29 sdk,下载后解压至sdk\platforms即可 -
RAR解压缩软件_Winrar官方版 V5.50.42 安卓去广告版
2021-06-06 16:18:16目前Winrar手机版支持创建RAR和ZIP压缩文件,能够轻松解压RAR, RAR5, ZIP, TAR, GZ, BZ2, XZ, 7z, ISO, ARJ等格式的文件,是手机端不可多得的手机解压缩软件!主要功能:支持创建RAR和ZIP压缩文件以及解压RAR, ... -
安卓文件下载上传解压相关-apk下载自动安装.rar
2019-07-29 15:41:41apk下载自动安装.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。