像许多 Android 开发人员一样,我希望为 MarketPlace 提供两个程序——一个演示版和一个完整版——它们都有相同的代码,但使用不同的资产。不幸的是,由于它们具有相同的包命名空间,因此它们不能同时加载到同一设备上。顺便说一句,资产在资产文件夹中,而不是在 res 文件夹中。
我想通过命令行制作第二个apk ,并从使用 NetBeans/Eclipse IDE 编译/构建的第一个apk派生它。
答案似乎是aapt及其--rename-package-manifest
选项,但我显然不明白如何使用它。
我执行以下步骤:
使用 NetBeans 构建我的完整 apk
使用apktool解压 apk
添加新资产
使用aapt重命名包
使用apktool重新打包到演示版本。
但是,我无法让第 4 步 - aapt rename 阶段工作。我在网上看到了很多关于这个的主题,但没有明确的例子。
然后我尝试了最简单的程序来测试它 - 一个 Hello World 使用下面的步骤。
Hello World 使用命令行选项可以正常工作,它可以在模拟器和设备上构建和运行。
但是,当我使用aapt --rename-manifest-package
命令时,它会出现很多错误。
我使用的命令是:
aapt 包 -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
错误在 themain.xml
和AndroidManifest.xml
are 的形式中:
“找不到属性‘layout_width’的资源标识符”
任何想法都会受到欢迎。