gpt4 book ai didi

android - 重新打包 APK 文件以包含自定义 Assets - 使用什么构建工具?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:00 25 4
gpt4 key购买 nike

更新:这是一篇旧帖子,下面对损坏的 aapt 版本的引用将过时。


根据之前的反馈,我将自定义文本字段存储在我应用的 Assets 目录中。

我将使用 Assets 文件中的默认用户详细信息编写应用程序,客户希望为每个用户重建应用程序,包括 Assets 文件中该用户的详细信息。

(我知道这种方法有一些严重的缺点,但客户仍然热衷于这样做 - 参见 Embed login details in APK file, different for each user (or other options?))

这个问题与我在解压缩 APK 文件并更新自定义 Assets 文件后重建 APK 文件时遇到的问题有关。我确信我遗漏了一些小东西,但是,我找到的关于这些方法的文档和帖子对新手来说帮助不够。

  1. aapt - Android sdk 工具:不幸的是,android 文档 [下面的链接 2] 上关于“使用 aapt”的 android 文档非常有限。控制台命令 -help 显示更多信息。当尝试使用它来将文件添加到 test.apk 时,它最终会删除原始文件,并创建一个新文件 test.apk.zip,其中仅包含我尝试添加的文件。我一直无法找到正确的命令行组合来获取解压缩的 apk 并重新打包它 - 这将是我的一等奖。

  2. apkbuilder - Android sdk 工具:首先,这个工具已被弃用,这是它的一个缺点。我也无法让它与解压缩文件夹中的内容一起使用。我想我错过了 apkbuilder 之前的步骤,因为 apkbuilder 要求资源 zip 存档,而我有一个资源文件夹。

  3. ant - 构建工具:其他类似的帖子说使用 ant 构建,而不是使用 android 工具。我无法让 Ant 工作。一个指向让 Ant 与 Android 一起工作的特定链接 [下面的链接 3] 看起来很有希望,但看起来它是针对不同的 android sdk(我的 build.xml 是由 android 生成的,看起来与他的不同)。不幸的是,我对 ant 知之甚少,并且很难成为足够的专家来解决我当前的问题。
    下面是 NickT 的解决方案 - 运行 ant 脚本给我错误
    无法使用类加载器 AntClassLoader[] 找到 taskdef 类 com.android.ant.SetupTask
    我在网上找到了一些关于这个错误的引用,已经确认 local.properties 有一个 sdk.dir 设置指向我的 android sdk 安装文件夹 (sdk.dir=/Applications/android-sdk-mac_86)。

  4. ??????:可能还有一些我没有列出/发现的其他选项,我很想听听。

我意识到深入研究通常被我的 ide 掩盖的齿轮可能会导致困难。但我知道很多 SO 用户可以做很多这样的事情,我希望我能引起他们中的一些人的兴趣。感谢您的帮助。

(Mac Snow Leopard 10.6 64 位上的 Eclipse 3.6)

PS,我还不能发布超过 1 个超链接,所以我包含了这些地址以显示有关我的问题的更多信息。

(1):stackoverflow.com/questions/4783160/embed-login-details-in-apk-file-different-for-each-user-or-other-options

(2): developer.android.com/guide/developing/tools/aapt.html

(3): www.disgruntledrats.com/?p=27

最佳答案

用我们最终选择的方法回答我自己的问题,并“备案”:

我无法让 Ant 为我正常工作(我缺乏理解)。

我最终使用了 aapt 工具。它按照 Android sdk 文档工作,使用起来非常简单:

aapt add -v Test.apk "assets/readme.txt"

这将添加一个 readme.txt 文件(我们将其存储在当前运行文件夹的子文件夹中,称为 assets。如果你想将新文件存储在其他地方,aapt 确实提供了一个命令行开关来指定)

但是,有一些注意事项:

  1. 我无法让它处理已签名的 APK 文件。
  2. 某些版本的 aapt 不能正常工作!他们不认识子文件夹...

解决1:

  1. 将 APK 从 Eclipse 导出为未签名的 APK。
  2. 使用 key 工具生成 key (参见 Android 开发文档)。
  3. 使用 aapt。
  4. 使用 jarsigner 为 APK 签名。

解决2:

我真的帮不上忙。我尝试下载的每个版本的 SDK(在 Mac 上)都包含一个无法识别子文件夹的 aapt 工具。一位同事下载了一个可用的版本,但我们仍然无法弄清楚他下载的是哪个版本,因此我们保留了这个“神奇”副本并对其进行了重命名,并将一直使用它,直到我们找到一个可用的新版本。

关于android - 重新打包 APK 文件以包含自定义 Assets - 使用什么构建工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com