Android中的发布与调试构建差异

时间:2016-06-03 19:07:43

标签: android android-studio

全部,    我们正面临一个奇怪的问题,我们的应用程序在调试版本变体中运行良好。但它无法在发布版本变体上正确执行。  甚至奇怪的是,如果我们为发布版本变体设置debuggable为true,它可以正常工作。两种变体都禁用了Proguard。

我试图了解android中的发布和调试版本变体之间的区别。你能指点我帮助我理解差异的任何资源吗?

谢谢

以下作品。但是如果我删除了debuggable,它就无法正常工作。调试构建始终有效。

buildTypes {
    release {
        debuggable true
        signingConfig signingConfigs.release
    }
    debug {
        signingConfig signingConfigs.debug
    }
}

2 个答案:

答案 0 :(得分:1)

也许这个问题与apk的签名有关。如果您使用debuggable true,那么您的应用程序将使用通用调试密钥库进行签名,一切正常。 相反,如果你删除它,你必须提供

storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"

更多信息:

https://developer.android.com/studio/build/build-variants.html#build-types

答案 1 :(得分:0)

检查您的java文件中是否使用了 BuildConfig.DEBUG 之类的内容。这一定是一个问题。

我曾经遇到过同样的问题。我发现我使用的是像if(BuildConfig.DEBUG) { Toast(...); }这样的代码。这对我来说是个问题。我将其更改为if(!BuildConfig.DEBUG) { Toast(...); },这使我的应用程序在应用程序的发布版本中工作。