当前位置: 首页 > 知识库问答 >
问题:

Android为发布版本和调试版本提供单独的字符串值

卫弘懿
2023-03-14

每次我发布我的应用程序时,我都会将所有url字符串和一些键从测试更改为生产。我这样做的方式就是在发布之前注释掉测试字符串。是否有更好的方法根据生成类型处理字符串?

共有3个答案

卫烨烁
2023-03-14

只需在构建中制作两种口味。格拉德尔。然后是两个目录,同样在链接中给出(developer.android.com/tools/building/configuration-gradle.html)。因为您只需要更改字符串,所以只需复制字符串即可。将xml文件放入新目录(即dev和production)中删除原始字符串。xml

就这样。:)

无需移动您的java文件或其他布局文件。

简言之,将所有内容保留在“main”目录中,以便在所有构建风格中保持一致。将依赖于构建风格的值重写到它们各自的目录中。

邵君植
2023-03-14

如果需要使用一些字符串,你可以使用Gradle

buildTypes {
    release {
        resValue 'string', 'adUnitIdMain', '"production-id-value-should-be-here"'
        resValue 'string', 'adUnitIdList', '"production-id-value-should-be-here"'
        resValue 'string', 'adUnitIdDetail', '"production-id-value-should-be-here"'
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug {
        resValue 'string', 'adUnitIdMain', '"test-id-value-should-be-here"'
        resValue 'string', 'adUnitIdList', '"test-id-value-should-be-here"'
        resValue 'string', 'adUnitIdDetail', '"test-id-value-should-be-here"'
    }
}
越学义
2023-03-14

假设您使用Android Studio,默认情况下系统会创建一个基本的版本调试风格。因此,如果在项目的app/src文件夹中添加debugrelease文件夹,则可以在其中声明单独的值。

所以你的结构应该是这样的:

project
  -app
    -src
      -debug
        -java
          ...
        -res
          -values
            -strings.xml
      -release
        -java
          ...
        -res
          -values
            -strings.xml
      -main
        -java
          ...
        -res
          -values
            -strings.xml

我还应该补充一点,如果您有一个字符串未在debugrelease文件夹中定义,它将返回到您的main文件夹。

 类似资料:
  • 在 Android Studio 中,当我单击工具栏中的“调试”图标时,会出现 gradle 以尝试进行发布版本。 首先,它显示了“编辑配置”弹出窗口。在底部,它有一条消息“您当前选择的变体(app release unsigned.apk)的apk未签名。请为此变体(release)指定签名配置。 为什么当我单击“调试”时,它试图使用“发布”?显然我改变了什么,我希望我知道。。。 这是我的应用程

  • 问题内容: 在C ++中,我通常会设置2个构建- 分别调试和发布,分别具有和预先定义。然后,我将使用这些定义来确定常量值,例如启用/禁用日志记录,服务器URL等。 现在,在Java / Android中,在构建发行版之前我会注释掉一些东西。我知道这不是一个好方法。我可能会忘记一些东西。 确保在构建发行版本(签名)或调试版本(未签名)时什么都不会忘记的常见做法是什么? 问题答案: (默认情况下)没有

  • 版本号 采用三位版本号,分别是主版本号、次版本号、修订版本号。例如 5.1.2。 参见: http://semver.org/lang/zh-CN/。 主版本号:主版本号内的所有版本必须相互兼容;与其它主版本号不一定完全兼容,尽量向下兼容。 次版本号:代表新特性增强。版本号越大特性越丰富。 修订版本号:代表BugFix版本。只做bug修复使用,版本号越大越稳定。 版本维护 最多同时维护两个版本。

  • 我的目标是发布一个具有单一依赖项的项目。我有一个nexus存储库,我在其中部署快照和发布版本。 我唯一的依赖性 我的nexus repo中发布了以下候选版本 当要求版本插件解决依赖关系时,它声称没有新的依赖关系可用。所以他认为 但是,如果在我的项目中有版本1.0.0-SNAPSHOT,那么版本1.1.0-RC1将解析为最新版本。 我错过了什么?(我查看了插件源代码,我们有以下片段: 对我来说这辆车

  • 我有一个activity,需要SDK,但仍然想使应用程序的其余部分可用于较低的SDK版本。有没有一种方法可以把用户的SDK读成一个字符串,这样我就可以放在一个if语句中了?

  • 我有一个奇怪的问题,我的调试版本工作正常,但是在签署并生成一个应用程序包后,我将其上传到Play商店,该应用程序立即崩溃(我在具有我的应用程序的商店版本的手机上运行LogCat,我看到它与AndroidX ConstraintLayout有关,但无法复制它)。我认为和版本之间有一些区别,所以我开始调试我的发布版本。 当我这样做时,Android Studio无法安装APK,出现以下错误: 安装失败