`
keshuangjie
  • 浏览: 1829 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

androir打包工具----java压缩成apk问题

阅读更多
打包工具流程:
  1.在eclipse中到处未签名的apk
  2.用java将其解压
  3.修改一些文件,
  4.用java压缩成apk
  5.对apk签名
  整个流程在压缩这一环出现了问题,java将文件压缩成apk时在每个文件下多了一个无名且文件大小为0的文件,签名安装后,打开程序报xml文件找不到。
  试过手动删除无效文件再签名,一切OK
  压缩方法如下:
  //对文件进行压缩
public static void zip(String sourceDir, String zipFile) {
OutputStream os;
try {
os = new FileOutputStream(zipFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
ZipOutputStream zos = new ZipOutputStream(bos);

File file = new File(sourceDir);

String basePath = null;
if (file.isDirectory()) {
basePath = file.getPath();
} else {
basePath = file.getParent();
}

zipFile(file, basePath, zos);

zos.closeEntry();
zos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(".......文件压缩成功");
FileUtil.deleteDirectory(sourceDir);
}


private static void zipFile(File source, String basePath,
ZipOutputStream zos) {
File[] files = new File[0];

if (source.isDirectory()) {
files = source.listFiles();
} else {
files = new File[1];
files[0] = source;
}

String pathName;
byte[] buf = new byte[BUFFER];
int length = 0;
try {
for (File file : files) {
if (file.isDirectory()) {
pathName = file.getPath().substring(basePath.length() + 1)+ "\\";
zos.putNextEntry(new ZipEntry(pathName));
zipFile(file, basePath, zos);
} else {
pathName = file.getPath().substring(basePath.length() + 1);
InputStream is = new[/size] FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(is);
zos.putNextEntry(new ZipEntry(pathName));
while ((length = bis.read(buf)) > 0) {
zos.write(buf, 0, length);
}
is.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
希望大神们看下什么问题导致的
[/size]
分享到:
评论

相关推荐

    uniapp打包成apk ---完整解压资源sdk

    【标题】"uniapp打包成apk ---完整解压资源sdk" 涉及的主要知识点是使用uniapp开发移动应用,并将其编译打包为Android APK格式的过程。uniapp是一款基于Vue.js开发的多端统一框架,它允许开发者用一套代码实现跨平台...

    kmre-apk-installer-1.0.4-arm64.zip

    【标题】"kmre-apk-installer-1.0.4-arm64.zip" 提供的是一个专为银河麒麟(Kylin)Linux操作系统设计的安卓apk应用安装工具,该工具支持arm64架构的设备。 【描述】"银河麒麟 Linux系统 安卓程序 apk安装器" 是...

    APK反組譯工具-APK-Multi-Toolv1.0.11

    APK-Multi-Toolv1.0.11是一款针对Android应用(APK)的反编译工具,它主要用于分析、修改和理解APK文件的内部结构和工作原理。在IT行业中,这样的工具通常被开发者、安全研究人员以及逆向工程师使用,以便于调试、...

    apk-parser

    标题“apk-parser”指的是一个专门用于解析Android APK文件的Java工具。APK是Android应用程序的包装格式,包含了应用的所有组成部分,如代码、资源、图标等。这个工具的主要目的是帮助开发者或者安全研究人员获取APK...

    apk打包工具(java)

    Java版的APK打包工具提供了一种在命令行环境下或者集成到自动化构建流程中创建APK的方式。下面我们将深入探讨这个主题。 首先,我们要理解APK的打包过程。这通常包括以下几个步骤: 1. **编译源代码**:Java源代码...

    uber-apk-signer,一个cli工具,它帮助对单个或多个android应用程序包(apk)进行签名和压缩,使其与调试证书或提供的发布证书保持一致。它支持v1和v2 android签名方案,具有嵌入式调试密钥库,签名后自动验证。.zip

    一种帮助用调试或提供的发布证书(或多个)对多个android应用程序包(apk)进行签名、压缩对齐和验证的工具。它支持v1、v2和v3的android签名方案。使用嵌入式调试密钥库轻松方便地进行调试签名。每次签名后自动验证...

    dex2jar android 反编译工具---将apk反编译成java源代码(classes.dex转化成jar文件)

    dex2jar是一款在Android开发领域常用的反编译工具,它主要功能是将APK中的classes.dex文件转换为Java源代码的jar文件,从而使得开发者能够查看和分析APK的内部结构和逻辑。在这个过程中,dex2jar扮演了一个关键角色...

    apk打包解包工具

    这个过程通常由Android Studio完成,包括编译源码、生成Dalvik字节码(DEX文件)、资源压缩和打包成APK。打包过程中还会对应用进行签名,确保其来源的可信性。 2. **APK解包**:解包APK是为了查看或修改内部内容,...

    onekey-decompile-apk-1.0.1.zip

    "onekey-decompile-apk-1.0.1.zip" 是一个专用于apk反编译的工具包,版本为1.0.1。这个工具集旨在简化Android应用程序(APK)的逆向工程过程,使得开发者或者安全研究人员能够查看、分析和修改APK的源代码。在IT行业...

    apk解包打包工具

    本文将详细介绍如何使用apk解包打包工具,以及相关步骤,适合初学者学习。 首先,我们要理解APK解包的目的是什么。解包APK是为了查看应用的源代码、资源文件,或者进行逆向工程分析。这通常用于调试、学习或安全...

    Android代码-一款安卓打包apk的工具

    apk-build node 一款安卓打包apk的工具 how to install 打开你的终端Terminal 输入npm -v查看是否安装npm 如果没有安装,请到nodejs官网进行安装 npm安装完成以后,终端运行npm install -g apk-build 终端运行...

    aapt打包工具--AAPT - Android Asset Packaging Tool

    它在构建APK时执行一系列操作,如编译、压缩、打包和验证资源,确保应用在运行时能够正确解析和使用这些资源。 **一、AAPT的功能** 1. **资源编译**:AAPT将XML资源文件转换为二进制格式,使得系统能够更高效地...

    APK瘦身优化检测工具-Matrix ApkChecker 使用(csdn)————程序.pdf

    Matrix ApkChecker 是一个强大的Android APK分析和优化工具,它能够帮助开发者检查APK安装包中可能存在的问题,以实现APK的瘦身和性能优化。该工具通过一系列预设的规则进行检测,并生成详细的报告,便于分析和解决...

    安卓编译工具framework-res.apk

    首先,开发者需要从Android开放源代码项目(AOSP)获取源码,然后在本地环境中设置构建环境,包括安装必要的依赖工具,如Java JDK、Gradle等。接下来,开发者需要执行一系列的构建命令,如`source build/envsetup.sh`...

    安卓APK批量打包工具

    在Android应用开发中,APK批量打包工具是一个非常实用的辅助软件,它能够帮助开发者高效地管理和构建多个版本的应用程序。这个工具的核心功能是进行渠道号替换、资源替换以及包名替换,以满足不同场景下的定制化需求...

    android_apk_打包工具

    而"android_apk_打包工具"就是为了解决这个问题,它提供了一个自动化、批处理的打包解决方案,使得开发者无需手动操作每个步骤,大大提高了工作效率。 该工具通常包含以下功能: 1. **自动编译**:自动调用Gradle...

    --APK反编译工具--

    1. ** Dex文件解析**:APK中的`.dex`文件是Dalvik虚拟机执行的字节码,反编译工具可以将`.dex`转换成Java源代码,这通常通过使用如dex2jar和JD-GUI等工具完成。 dex2jar将.dex转换为.jar文件,然后JD-GUI可以打开....

    android反编译工具(dex2jar,apk2java)

    本文将详细介绍两款常用的Android反编译工具——dex2jar和apk2java,以及如何利用它们获取APK中的Java源代码和资源文件。 一、dex2jar dex2jar是一款将Dalvik字节码(.dex)转换为Java字节码(.jar)的工具。...

    apk解包+修改源码+重新打包工具

    1. 使用Apktool重新打包:修改完成后,需要使用Apktool将修改过的源码和资源重新打包成APK,Apktool会处理资源的ID重分配、R类生成等问题。 2. 重新签名:Android系统要求每个APK都需要有自己的签名,所以重新打包后...

    apk2java工具

    步骤:首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。 在命令行下定位到dex2jar.bat所在...

Global site tag (gtag.js) - Google Analytics