我有一个包含两种构建类型的项目设置:debug
和 release
。
在我的应用程序模块中,我有三个不同的目录:debug
、release
和 main
。
我想做的是测试 release
目录中的代码,但我似乎能做到的唯一方法是生成签名的 apk 并将其加载到模拟器上。这意味着我无法正确调试它。
当我将 app
模块的构建变体更改为 release
时,“编辑配置”弹出窗口中出现以下错误。
Error: The apk for your currently selected variant (app-release-unsigned.apk_ is not signed. Please specify a signing configuration for this variant (release).
我希望做的是在 的
模块然后将继承 build.gradle
文件中使用名为 debugRelease
的版本扩展 release
构建变体>apprelease
目录中的代码,但我可以从 IDE 中运行它。
我可能以错误的方式看待这个问题,我很乐意听到任何其他技巧。
我可以做我想做的事吗?如果不是,最好的解决方案是什么?
最佳答案
经过大量研究后,我决定继续我的debugRelease
想法,它似乎运作良好。
我在 app/src
下创建了一个名为 debugRelease/java
的新目录。当我生成一个签名的 apk 或发布版本时,我在那里放置了我想要不同的任何代码。
这样做使我能够测试代码是否正常工作并能够对其进行调试。当然,这并不经常完成,它只是崩溃报告和记录差异,但如果我需要修复错误或其他东西,我可以。
在我的 build.gradle
文件中,我有以下设置。
buildTypes {
release {
}
debug {
}
debugRelease {
signingConfig signingConfigs.debug
}
}
sourceSets {
debugRelease {
res.srcDirs = ['src/debug/res'] // this uses the debug's res directory which contains a "debug" icon
}
release {
java.srcDirs = ['src/debugRelease/java'] // this avoids copying across code from the debugRelease java directory
}
}
所以现在当我想测试发布代码时,我只需将构建变体更改为 debugRelease
。
关于android - 在不生成签名 APK 的情况下调试发布构建类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35630471/