gpt4 book ai didi

Android - 基于构建类型的 gradle 动态配置

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:14 25 4
gpt4 key购买 nike

我正在开发一个连接到我的服务器的 Android 应用程序。像往常一样,我在开发过程中的服务器在笔记本电脑上,它的 ip 正在改变。我想检测我的开发机器的 ip 地址,即

InetAddress.getLocalHost().getCanonicalHostName()

...并将其注入(inject)到 android strings.xml 文件中,以便我的 Android 应用程序在开发过程中连接到正确的 ip。

我正在努力确定从哪里获取信息运行哪种类型的 buildType 每次都可以执行以下部分:

android { 
buildTypes.each { buildType ->
if(buildType.name == 'debug') {
def host = InetAddress.getLocalHost().getCanonicalHostName()
}
}
}

假设该主机现在已确定。但是我仍然不确定如何替换 strings.xml 文件中的主机以连接到正确的主机。我无法调用 processResources,因为抛出了以下异常:

Could not find method processResources() for argument [build_11onjivreh0vsff0acv5skf836$_run_closure3@cbbe2cf] on project

如有任何建议或源代码,我们将不胜感激。

最佳答案

有一个更简单的解决方案:在 BuildConfig 中使用 static final:

buildTypes {
debug {
def host = InetAddress.getLocalHost().getCanonicalHostName()
buildConfig "public static final String API_HOSTNAME = \"" + host + "\";"
}

release {
buildConfig "public static final String API_HOSTNAME = \"whateveritisforreleasebuilds\";"
}
}

BuildConfig.API_HOSTNAME 将保存远程地址。

关于Android - 基于构建类型的 gradle 动态配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18767324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com