【发布时间】:2011-01-25 11:59:26
【问题描述】:
更新:这是一篇旧帖子,下面对损坏的aapt 版本的引用将过时。
根据之前的反馈,我将自定义文本字段存储在我的应用的资产目录中。
我将使用资产文件中的默认用户详细信息编写应用程序,并且客户端希望为每个用户重新构建应用程序,包括资产文件中该用户的详细信息。
(我知道这种方法有一些严重的缺点,但客户仍然热衷于这样做 - 见Embed login details in APK file, different for each user (or other options?))
这个问题与我在解压并更新自定义资产文件后重建 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
【问题讨论】: