基于同一代码但不同包名发布两个应用程序

4
像许多Android开发者一样,我想要在MarketPlace上有两个程序-演示版和完整版-它们都拥有相同的代码但使用不同的资产。不幸的是,由于它们具有相同的软件包命名空间,它们无法同时加载到同一设备上。顺便说一下,这些资产位于asset文件夹中而不是res文件夹中。
我想通过命令行创建第二个apk,并从使用NetBeans/Eclipse IDE编译/构建的第一个apk派生它。
答案似乎是aapt及其--rename-package-manifest选项,但我显然不知道如何使用它。
我执行以下步骤:
1. 使用NetBeans构建我的完整apk 2. 使用apktool解压缩apk 3. 添加新的资产 4. 使用aapt重命名软件包 5. 使用apktool重新打包为演示版本
然而,我无法使第四步-aapt重命名阶段起作用。我在网络上看到了很多关于此问题的帖子,但没有明确的示例。
然后,我尝试了最简单的测试程序-遵循此处的步骤进行Hello World。
使用命令行选项,Hello World可以正常工作,在模拟器和设备上构建和运行。
但是,当我使用aapt --rename-manifest-package命令时,它会产生很多错误。
我使用的命令是:
aapt package -f -v -M c:\android-sdk-windows\tools\hellow\AndroidManifest.xml -S c:\android-sdk-windows\tools\hellow\res —rename-package-manifest com.myname.demo
主.xml和AndroidManifest.xml中的错误格式如下:
"No resource identifier found for attribute 'layout_width'"
如果有任何想法,将不胜感激。

1
选项是 --rename-manifest-package - John Oleynik
1个回答

2
使用Android库项目,因为这是为你的场景而设计的。以下是使用Android库项目的说明,使用Eclipse不使用Eclipse

谢谢您。我看了一下,似乎库源代码必须存在,这样它们才能与主程序合并。 - MacieFranks
本文概述了如何在没有Java源代码的情况下构建两个版本 - 需要aapt --rename-manifest-package选项,但我无法使其工作。http://blog.uncommons.org/2010/07/19/building-two-versions-of-the-same-android-app/ - MacieFranks
@MacieFranks:“我看了一下,似乎库源代码必须存在,这样它们才能与主程序合并”——不是的,虽然需要一些技巧来创建仅限二进制的库项目。请参阅http://andparcel.com/articles/parcel中的“仅限二进制库项目”部分。 - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接