android - Gradle Flavor 明智地更改 packageName 和 applicationId

标签 android android-build android-package-managers android-build-type android-build-flavors

我有一个核心产品(例如学校核心),现在我需要为 2 所学校推出它(例如学校 A学校 B>)。唯一不同的是应用程序图标启动屏幕。我尝试通过味道来控制这一点。正如我们所知,要上传到 Google Play 商店,我们需要不同的包名称,所以我陷入了困境。

我的味道是这样的 -

productFlavors {
    main {
        applicationId "net.school.main"
        versionCode 7
        versionName "2.12"
    }
    schoolA {
        versionCode 2
        versionName '1.01'
        applicationId 'net.school.schoolA'
    }
    schoolB {
        versionCode 1
        versionName '1.0'
        applicationId 'net.school.schoolB'
    }
}

当我运行 flavor schoolA时,它说找不到包。我正在寻找最好的方法,以便将来可以以最小的改变添加任何新学校。

最佳答案

不幸的是,您无法更改不同口味的包名称。

每个Android应用程序都有一个唯一的应用程序ID,看起来像Java包名称,例如com.example.myapp。此 ID 唯一标识您的应用程序在设备上和 Google Play 商店中的位置。因此,您可以重新定义完整的 applicationId 属性,也可以使用 applicationIdSuffix 将一段附加到默认应用程序 ID 就足够了。引用official document了解更多详情。

关于android - Gradle Flavor 明智地更改 packageName 和 applicationId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50548735/

相关文章:

android - 如何使用 koin 在 customView 中注入(inject) View 模型?

java - 在 Activity 之间同时发送数据,同时数据不断更新

android - 解决错误: all support libraries must use the exact same version的正确方法

android - 将数据放入 Android 4.4 错误位置中的 JSON 对象

android - Android Studio 中的 Android 和 Androidx 包有什么区别?

android - 在 Android Gradle Build 3.1.2 中禁用 list 合并

java - 无法删除路径

android - 是否可以获得我的 Android 设备的源代码?

java - 根据先前选择的在 RecyclerView 中设置复选框

android - 从 PackageManager 获取包