java - 如何在apk中插入新文件?

标签 java android apk

我想要一个安装另一个 apk 的 apk 我没有它的来源 我想用 win rar 提取我的 apk 并替换 Assets 目录中的第二个 apk 然后压缩它并使用 apk 扩展重命名并安装在我的设备 但是当它被提取并再次压缩时我无法安装它 它抛出 包解析错误

为什么?

我可以在apk中插入新文件吗?

Intent resultIntent = new Intent();
            resultIntent.setAction(Intent.ACTION_VIEW);
            resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            resultIntent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "myapp.apk")),"application/vnd.android.package-archive");
            startActivity(resultIntent);

最佳答案

您可以手动或使用从 apk 中添加/删除文件

aapt add MyApp.apk file1 file2(如 ritwik verma 所述)

然后您需要使用您的 key 对其进行签名,因为您可能不知道原始 key ,但是您将获得 2 个签名并且可能会出现问题。 因此,当您添加新文件时,您应该:

  1. 在 apk 中删除 META-INF 目录
  2. 签署 apkjarsigner -keystore "C:\data\debug.keystore"-storepass android -keypass android "C:\data\Some.apk"androiddebugkey
  3. zipalign apk zipalign -f 4 "C:\datasome.apk""C:\data\some_signed.apk"

jarsigner 是 JDK 的一部分 zipalign 是 Android SDK 的一部分

在这个例子中,我使用默认的调试 key ,你可以使用你自己的。

关于java - 如何在apk中插入新文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18074720/

相关文章:

java - 发送紧急数据后 TCP 连接被重置

java - 如何从 maven pom 文件构建项目

android - 在其他位置显示上下文操作栏

android - 修改 .smali 文件

java - 在 Google Play 管理中心更改应用程序的代码版本

java - NoSuchMethodError : org. slf4j.helpers.MessageFormatter.格式

android - 如何到达和更改另一个 Activity 布局的元素?

android - 停止Android alarmmanager的setrepeat

android - 推送 apk 文件时出现错误 JAR_SIG_NO_MANIFEST : Missing META-INF/MANIFEST. MF

java - 为什么我们需要有界通配符 <?在 Collections.max() 方法中扩展 T>