我已经在Android电子市场上有一个免费的应用程序,但我想添加一个具有更好功能的付费版本.我不能上传相同的一些更改的常量来解锁这些功能,因为市场告诉我,我已经在市场上有一个带有该包名称的应用程序.
这样做最干净的方法是什么?
所以我要下载我的申请的发布时间.我们计划发布两个版本,一个免费的基于广告的播放解锁版本和一个付费完全解锁版本.我设置了代码,我可以在启动时设置一个标志来启用/禁用广告并锁定/解锁所有功能.因此字面上只有一行代码在这些版本之间执行不同.
为了发布两个单独的应用程序,它们需要不同的包名称,所以我的问题是:是否有一种简单的方法来重构我的应用程序的包名称?Eclipse的重构工具无法解析生成的R文件或布局和清单文件中的任何XML引用.我试图使用原始资源创建一个新项目,但我无法引用资产和资源,我希望避免重复我的任何代码和资产.手动重构它不是一个巨大的痛苦,但我觉得必须有一个更好的方法来做到这一点.有人有一个优雅的解决方案吗?
编辑/回答:
对于我的情况,我发现只使用Project - > Android Tools - > Rename Application Package是完全可以接受的.我不知道这存在,我觉得现在发布这个就是个白痴.感谢大家的回答和评论,请随意投票.
我正在开发一组仅在某些品牌中有所区别的应用程序(想想不同的运动队); 但是,我遇到了一个问题,我正在为所有特定品牌的应用程序使用一个Library项目,并希望为所有这些应用程序使用相同的ContentProvider.当我创建ContentProvider时,我将AUTHORITY声明为类中的常量(根据dev示例代码),并且我在清单文件中的每个特定应用程序中使用相同的权限.看起来我不能在每个应用程序中使用相同的权限,因为我在尝试安装第二个应用程序时遇到此错误(我安装一个品牌的应用程序,但第二个安装):
WARN/PackageManager(66): Can't install because provider name com.xxx.Provider (in package com.xxx) is already used by com.zzz
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法,但似乎没有一种方法可行.我还没有完成的一个想法是创建一个库jar,只省略我拥有的Provider类,并在每个特定的应用程序中自定义它.关于如何解决这个问题而不诉诸于此的任何想法?