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

时间:2011-01-17 09:45:06

标签: android command-line package marketplace aapt

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

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

答案似乎是 aapt 及其--rename-package-manifest选项,但我显然不明白如何使用它。

我执行以下步骤:

  1. 使用NetBeans构建我的完整apk

  2. apktool

  3. 解压apk
  4. 添加新资源

  5. 使用 aapt

  6. 重命名包
  7. 使用 apktool 重新打包到演示版。

  8. 但是,我无法完成第4步 - aapt 重命名阶段。我在网上看到了很多线程,但没有明确的例子。

    然后我尝试了最简单的程序来测试它 - 使用以下步骤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.xmlAndroidManifest.xml中的错误均为以下形式:

      

    “找不到属性'layout_width'的资源标识符”

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

1 个答案:

答案 0 :(得分:2)

使用Android库项目,因为它是根据您的场景设计的。以下是使用Android库项目with Eclipsewithout Eclipse

的说明