android - 在不生成签名 APK 的情况下调试发布构建类型

标签 android android-studio gradle

我有一个包含两种构建类型的项目设置:debugrelease

在我的应用程序模块中,我有三个不同的目录:debugreleasemain

我想做的是测试 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 构建变体>app 模块然后将继承 release 目录中的代码,但我可以从 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/

相关文章:

java - 如何在我的示例中正确应用 MVP 模式

jenkins - 使用外部依赖项运行集成测试。摇动

java - 是否需要为 x86 架构创建单独的 .APK 文件?

android - com.android.build.api.transform.TransformException : java. util.zip.ZipException

安卓谷歌地图 View

android - 将文本设置为整数值

java - setSupportActionBar 无法应用(android.widget.Toolbar)错误

android - JavaCV + Android Studio + gradle- 可能吗?

android - 我可以为 CI 和 Android Studio 设置单独的 gradle.properties 吗?

gradle - Gradle选项卡未在Android Studio 3.0中显示