【问题标题】:Releasing 2 applications based on same code but different package name发布 2 个基于相同代码但不同包名的应用程序
【发布时间】:2019-08-22 17:36:38
【问题描述】:

与许多 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 重新打包到演示版本。

但是,我无法执行第 4 步 - aapt 重命名阶段。我在网上看到了很多关于这个的帖子,但没有明确的例子。

然后我尝试了最简单的程序来测试它 - 一个 Hello World,使用步骤 here

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

main.xmlAndroidManifest.xml 中的错误均采用以下形式:

“未找到属性‘layout_width’的资源标识符”

非常欢迎任何想法。

【问题讨论】:

  • 选项是--rename-manifest-package

标签: android command-line google-play package aapt


【解决方案1】:

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

【讨论】:

  • 谢谢你。我看了一下,好像库源代码必须在那里才能与主程序合并。
  • 这篇文章概述了如何在没有可用 java 源代码的情况下构建两个版本 - 它需要 aapt --rename-manifest-package 选项,但我无法让它工作@987654323 @
  • @MacieFranks:“我看了看,似乎库源代码必须在那里,以便它们可以与主程序合并”——不,虽然这需要一些技巧创建仅二进制库项目。请参阅 andparcel.com/articles/parcel 中的仅二进制库项目部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-09
  • 2015-07-27
  • 1970-01-01
  • 2022-08-05
  • 1970-01-01
  • 2016-12-25
相关资源
最近更新 更多