在同一个代码库上构建两个不同的 android 应用程序,仅在 const 上有所不同

Building two different android apps on the same codebase that only differ by const

我正在构建两个 android 应用程序,它们依赖相同的代码库,但它们从中获取文件的服务器地址不同。

到目前为止,我已经创建了两行服务器地址常量,并使用第一个常量构建应用程序一次,第二个使用第二个常量构建应用程序。

有什么方法可以使我的应用程序编译两次,一次使用第一个常量,第二次使用第二个常量?

我正在使用 Android 工作室和 Gradle 构建。

谢谢!

您可以使用 product flavors 教 Gradle 构建您的应用程序的两个独立副本,其中您的服务器地址在 BuildConfig:

中定义
android {
  // other stuff here

  productFlavors {
    flavorOne {
      buildConfigField "String", "URL", '"https://..."'
    }

    flavorTwo {
      buildConfigField "String", "URL", '"https://..."'
    }
  }
}

在您的 Java 代码中,请参考 BuildConfig.URL 以使用 URL。

是的,您可以使用 Build Variants。您可以将这些字符串移动到变体目录下的资源中,构建将拉入正确的字符串。

这里是link关于如何设置它们的完整文档:https://developer.android.com/studio/build/build-variants.html