android – 基于相同的代码但不同的包名释放2个应用程序

像许多
Android开发人员一样,我希望有两个MarketPlace程序 – 一个演示版和一个完整版 – 它们都有相同的代码,但使用不同的资产.不幸的是,因为它们具有相同的包命名空间,所以它们不能同时加载到同一设备上.顺便说一句,资产位于资产文件夹中,而不在res文件夹中.

我想通过命令行创建第二个apk,并从使用NetBeans / Eclipse IDE编译/构建的第一个apk派生它.

答案似乎是aapt和它的–rename-package-manifest选项,但我显然不明白如何使用它.

我执行以下步骤:

>使用NetBeans构建我的完整apk
>用apktool解压缩apk
>添加新资产
>用aapt重命名包
>使用apktool重新打包到演示版.

但是,我无法获得第4步 – aapt rename阶段的工作.我在网上看到了很多这样的线程,但没有明确的例子.

然后我尝试了最简单的程序来测试它 – 使用步骤here的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

main.xml和AndroidManifest.xml中的错误都是以下形式:

“No resource identifier found for attribute ‘layout_width’”

任何想法都会非常受欢迎.

最佳答案 使用Android库项目,因为这是为您的场景设计的.以下是使用Android库项目
with Eclipse
without Eclipse的说明.

点赞