26

在继续开发我的应用程序并在真实手机上对其进行测试时,出于演示目的,我需要在同一部手机上安装它的发布版本(由于没有日志,发布版本的响应速度更快)。

问题在于,在 Android 中让两个应用程序在同一设备上共存的唯一方法是使用不同的包名称。

但是包名称需要重构和大量传播手动修复......更不用说这会混淆版本控制......

理想情况下,Eclipse+ADT 将允许附加一个修饰变量,该变量将自动为调试/发布生成不同的包名称并允许这种共存,但我找不到任何允许这样做的机制。

您知道解决此问题的任何方法吗?

欢迎创造性的解决方案和想法。

4

5 回答 5

20

使用 Android Studio,因为 gradle 让您的生活更轻松 - 只需使用applicationIdSuffix

android {  
   ...  
   buildTypes {  
     release {...}  
     debug {  
       applicationIdSuffix '.debug' 
     }  
   }  
}

更多请到这里

于 2015-02-27T08:38:02.010 回答
2

我知道的唯一方法是更改​​应用程序清单文件中的包名称。Eclipse 应该为您处理所有代码重命名。

于 2011-09-07T14:43:48.210 回答
2

你能把你所有的代码放在一个库项目中,然后只有两个普通项目,它们有不同的包名,并且只在两个项目中都包含库项目吗?

这应该将您的所有代码保存在一个地方。普通项目很可能只需要一个指向库项目中活动的有效清单文件。

于 2011-09-07T14:51:15.553 回答
0

您可能想尝试使用antJenkins和其他工具来自动化包重命名,如@LAS_VEGAS 所建议的那样。

虽然不是您所要求的,但这个很酷的代码片段可以帮助您在运行时确定您的代码是调试的还是发布的。

另一个有趣的尝试可以在这个线程中找到。我不确定它是否适用于Android。

于 2012-01-26T22:59:44.743 回答
0

在 Android Studio 中,使用产品风味添加构建变体,可以轻松针对各种环境进行定制,并同时测试同一应用的多个应用变体。查看此链接以获取更多信息 -配置 Gradle

于 2015-08-14T11:44:29.427 回答