-1

我在几个线程中看到了一些关于这个问题的信息,但不适合我的情况。
我有一个 android 应用程序,我现在需要自定义一些资源和代码。
目前我在使用 android 库时遇到了一些问题,所以我有一个 ant 构建,它将基础资源和资产以及特定资源复制到我的 android 项目中,然后根据需要更改清单中的包名称。我所有的活动都有恒定的路径并且与包名无关,所以这不是问题。
问题在于 aapt 中生成的 gen 文件夹中的 R 对象。aapt 确实有一个参数不使用 android manifest 包,而是另一个,但它只有在我使用 ant 构建文件时才可用,ADT 的参数在插件中是硬编码的。

有没有人找到解决方案?我的意思是我总是可以使用 ant 任务来更改所有 R 引用(导入),但它看起来很容易出错。除了不会在 Windows 上自定义 aapt 的包装脚本之外的任何方式?

4

1 回答 1

-2

再次......我的问题没有答案,我会开始认为你们对我有什么不满。简而言之,我看到没有解决方案,我可以做的事情:

  1. 使用正则表达式所有导入 com....R 的 ant 任务;到新包 - 缺点:即使是正则表达式的最小问题,我也可能在代码中弄乱一些只会在运行时显示的东西。
  2. 在 aapt.exe 或 aapt 二进制文件周围使用包装脚本添加 --custom-package my.package.name 即使我更改清单包也会保留原始 R 文件,对于 ant 和 eclipse - 缺点,一些:1. on windows 这需要是一个 exec 文件,因为 eclipse 寻找一个我花了一段时间在 C 中正确构建一个,在 linux\mac 这可能是任何类型的脚本,所以我们需要它的 2 个版本\ 2. 每次更新到我们需要重新安装包装器的 SDK。
  3. 编辑 ant 任务 jar 代码以允许 --custom-package 并编辑 adt 源代码以在菜单自定义参数中启用 - 这是应该包含的很棒的功能!但缺点是在代码被接受(如果被接受)并添加到 SDK 本身之前,我需要在每个新 SDK 出现时合并我的更改,与 #2 不同,这要困难得多。

我选择了选项#2,现在我有 Windows 的可执行文件,一旦我在那里,我将检查 Linux 和 mac 的选项(可能是简单的 bash 脚本),我将创建一个 python 安装脚本并将其全部保存在svn 连同我的构建项目。

祝大家好运......

于 2012-04-16T13:15:49.373 回答