我的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/"
...
}
}
在我的代码中,我得到字符串值:
String url = context.getString(R.string.server_url);
我将Android手机连接到笔记本电脑。 Android studio工具栏如下所示:
我还选择了构建变体为“debug”:
我点击,应用程序正在我的手机上运行,但是,它使用发布类型中定义的server_url
值。为什么?
(在build/generated/res/resValues/debug/generated.xml
& build/generated/res/resValues/release/generated.xml
下面,我看到了那些价值观,没有任何问题。)
====更新===
添加defaultPublishConfig 'debug'
解决了这个问题(感谢@Ulug Toprak),但我仍然想知道为什么Android Studio在没有它的情况下无法工作,尽管我已将Build Variant设置为“Debug”。也许是Android Studio中的一个错误?
答案 0 :(得分:1)
只是回答您的更新问题,
多模块设置(应用程序+安卓库)不会从Android库模块中记录带注释的方法/类,但会在Android应用程序模块上执行。这背后的原因是,Android Gradle插件将构建所有Android库作为发行版本。
根据注释中的建议将defaultPublishConfig "debug"
添加到build.gradle文件将强制调试版本