【发布时间】:2016-02-25 14:44:57
【问题描述】:
我有一个具有两种构建类型的项目设置:debug 和 release。
在我的应用模块中,我有三个不同的目录:debug、release 和 main。
我想要做的是测试release 目录中的代码,但我似乎可以这样做的唯一方法是生成一个签名的 apk 并将其加载到模拟器上。这意味着我无法正确调试它。
当我将 app 模块的构建变体更改为 release 时,“编辑配置”弹出窗口中出现以下错误。
错误:您当前选择的变体的 apk (app-release-unsigned.apk_ 未签名。请指定签名 此变体的配置(发布)。
我希望做的是在app 模块的build.gradle 文件中使用一个名为debugRelease 的构建变体扩展release 构建变体,然后它将继承release 目录中的代码,但我会能够从 IDE 中运行它。
我可能看错了,我很高兴听到任何其他技巧。
我可以做我想做的事吗?如果不是,最好的解决方案是什么?
【问题讨论】:
-
不是字面意思。您寻求的语法要求
debug是一种产品风格,并且debug已用于构建类型。 -
那么我还剩下什么,将我的类从
release目录复制到另一个名为 debugRelease 或类似的目录中? -
恕我直言,
release中有重要的 Java 代码是一种代码异味。话虽如此,您可以设置第三种构建类型(例如fakerelease),在其中配置该构建类型以从release提取其Java 代码、资源等,并使用debug签名配置。 Gradle 足够灵活,您不需要复制实际代码。 -
您认为更好的方法是在运行时检查是处于调试模式还是发布模式?
-
更重要的是,我认为
release构建的功能应该几乎没有变化,并且没有足够的功能需要调试器。因此,例如,在自定义Application子类中添加几行代码以与 ACRA 或其他崩溃报告框架相关联是可以的,但您不需要为此使用调试器。
标签: android android-studio gradle