在调试模式下运行Android应用程序

Lee*_*fin 8 android android-gridview android-studio android-gradle-plugin android-studio-2.3

我的Android Studio版本是2.3.3

在我的Android应用程序gradle构建中,我已经明确地server_url调试类型和发布类型定义了不同的字符串值:

buildTypes {
        debug {
            resValue "string", "server_url", "https://myserver.debug.com/"
        }
        release {
            resValue "string", "server_url", "https://myserver.com/"
            ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我通过以下方式获取字符串值:

String url = context.getString(R.string.server_url);
Run Code Online (Sandbox Code Playgroud)

我将Android手机连接到笔记本电脑.Android studio工具栏如下所示: 在此输入图像描述

我还选择构建变体为"debug":

在此输入图像描述

我点击了 在此输入图像描述,该应用程序正在我的手机上运行,​​但是,它使用server_url发布类型中定义的值.为什么?

(在build/generated/res/resValues/debug/generated.xml&build/generated/res/resValues/release/generated.xml我看到那些价值观,没有问题.)

====更新===

加入defaultPublishConfig 'debug'解决了该问题(感谢@Ulug托普拉克),但我仍然不知道为什么,虽然我已构建变量为"Debug"的Android Studio不会没有它的工作.也许是Android Studio中的一个错误?

Ulu*_*rak 1

只是为了回答您更新的问题,

多模块设置(应用程序 + Android 库)不会从 Android 库模块记录带注释的方法/类,但会在 Android 应用程序模块上记录。这背后的原因是 Android Gradle 插件会将所有 Android 库构建为发布版本。

正如评论中所建议的,添加defaultPublishConfig "debug"到 build.gradle 文件将强制使用调试版本