更新:这是一篇旧帖子,下面对损坏aapt
版本的引用将过时。
根据之前的反馈,我将自定义文本字段存储在我的应用程序的资产目录中。
我将使用资产文件中的默认用户详细信息编写应用程序,并且客户端希望为每个用户重建应用程序,包括资产文件中该用户的详细信息。
(我知道这种方法有一些严重的缺点,但客户仍然热衷于以这种方式进行 - 请参阅在 APK 文件中嵌入登录详细信息,每个用户都不同(或其他选项?))
这个问题与我在解压缩并更新自定义资产文件后重建 APK 文件时遇到的麻烦有关。我非常确信我遗漏了一些小东西,但是,我在这些方法上找到的文档和帖子对新手来说并没有足够的帮助。
aapt - Android sdk 工具:不幸的是,android 文档 [下面的链接 2] 上有关“使用 aapt”的 android 文档非常有限。控制台命令 -help 显示更多信息。当尝试使用它仅将文件添加到 test.apk 时,它最终会删除原始文件,并创建一个仅包含我尝试添加的文件的新文件 test.apk.zip。我无法找到正确的命令行组合来获取解压缩的 apk 并重新打包它——这将是我的第一个奖励。
apkbuilder - Android sdk 工具:首先,该工具已被弃用,这对其不利。我也无法让它与我在该解压缩文件夹中的内容一起使用。我想我缺少一个 pre-apkbuilder 步骤,因为 apkbuilder 要求提供资源 zip 存档,并且我有一个资源文件夹。
ant - 构建工具:其他类似的帖子说用 ant 构建,而不是使用 android 工具。我无法让蚂蚁工作。一个让 Ant 与 Android 一起工作的特定链接 [下面的链接 3] 看起来很有希望,但看起来它适用于不同的 android sdk(我的由 android 生成的 build.xml 看起来与他的不同)。不幸的是,我对 ant 知之甚少,并且难以成为足以解决我当前问题的专家。
除了下面 NickT 的解决方案 - 运行 ant 脚本给了我错误
taskdef class com.android.ant.SetupTask cannot be found using the classloader AntClassLoader[]。
我在网上找到了一些关于这个错误的引用,已经确认 local.properties 有一个 sdk.dir 设置指向我的 android sdk 安装文件夹(sdk.dir=/Applications/android-sdk-mac_86)。?????:可能还有一些我没有列出/发现的其他选项,我有兴趣听听。
我意识到深入研究通常被我的想法掩盖的齿轮可能会导致困难。但我知道很多 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