我有一个包含两种构建类型的项目设置:debug
和release
。
在我的app模块中,我有三个不同的目录:debug
,release
和main
。
我想要做的是测试release
目录中的代码,但我似乎唯一能做的就是生成一个签名的apk并将其加载到模拟器上。这意味着我无法正确调试它。
当我将app
模块的构建版本更改为release
时,我在"编辑配置"中出现以下错误:弹出窗口。
错误:您当前所选变体的apk (app-release-unsigned.apk_未签名。请指定签名 此变体的配置(发布)。
我希望做的是在release
模块的debugRelease
文件中扩展名为build.gradle
的{{1}}构建变体,然后继承该代码app
目录,但我可以在IDE中运行它。
我可能会以错误的方式看待这个问题,我很乐意听到其他任何技巧。
我可以做我想做的事吗?如果不是最好的解决方案是什么?
答案 0 :(得分:5)
经过大量研究后,我决定继续我的debugRelease
想法,似乎运作良好。
我在名为app/src
的{{1}}下创建了一个新目录。在那里,当我生成签名的apk或发布版本时,我放置了我想要的不同代码。
这样做可以让我测试代码的工作原理并能够调试它。虽然这不是经常完成的,它只是崩溃报告和日志记录的差异,但是,如果我有机会修复bug或其他东西,我可以。
在我的debugRelease/java
文件中,我进行了以下设置。
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
}
}
。
答案 1 :(得分:0)
您可以使用以下属性构建应用的发行版本(例如,使用生产环境):
对您的 app / build.gradle 进行这些临时更改:
/* ADD THIS BLOCK, IF NOT ALREADY THERE */
lintOptions {
// When you make a Release Build, the Android Lint tool will run to check many things.
// It is set to abort the build on a single Lint error/warning. Disable this.
abortOnError false
}
buildTypes {
release {
//minifyEnabled true // <-- COMMENT OUT
//proguardFiles ... // <-- COMMENT OUT
//shrinkResources true // <-- COMMENT OUT
signingConfig signingConfigs.debug // <-- ADD THIS TO SIGN WITH YOUR DEBUG CERTIFICATE
debuggable true // <-- ADD THIS
minifyEnabled false // <-- ADD THIS
}
}
然后执行Android Studio➔视图➔工具Windows➔构建变体➔选择appRelease
或您所称的名称,然后按“运行”按钮进行构建和安装。
更多信息/相关文章: