android - 多个 apk 的多个包名称

标签 android android-package-managers

<分区>

我们有一个应用程序具有相同的代码,但针对不同国家/地区的 Apk 不同。我应该使用什么方法来动态更改包名称?

最佳答案

在你的 build.gradle 文件中添加 flavors

android {
    productFlavors {
        app1 {
            applicationId 'com.mobile.app1'
            versionCode 1
            versionName "0.9.4"
        }
        app2 {
            applicationId "com.mobile.app2"
            versionCode 1
            versionName "0.9.4"
        }
    }
}

然后您可以在源文件夹中创建文件夹 app1 和 app2。 app1和app2文件夹里面应该有java和res文件夹,其实和main文件夹结构一样,只是没有文件。

只应将 app1 和 app2 特定文件添加到 app1 和 app2 中。 所以,如果你想要不同的字符串,你可以将字符串文件添加到 app1/res/strings.xml 等。 .java 文件也是如此,只需添加与主文件夹中相同的路径即可。

main/java/com/.../MyClass.java 将是 app1/java/com/.../MyClass.javaapp2/java/com/.../MyClass.java

在左下角,您可以切换构建变体以在模拟器或设备中运行应用。

当您创建 .apk 或 .aab 时,您可以选择要构建的应用。

关于android - 多个 apk 的多个包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56143393/

相关文章:

Android Lollipop - PackageInstaller.Session commit()

android - 找不到 android.app.ApplicationPackageManager

android - 可以在同一个 APK 中放置两个包吗?

java - 将字符串转换为 JSONArray(不是来自 gson 的 JsonArray)

android - 节点尚未附加到 `PropsAnimatedNode.updateView` 中的 View

android - 如何在 Android 中检索具有相同包名称的多个应用程序?

android - 完全更改包名称,包括公司域

android - 滚动 AppBarLayout 不会滚动 CoordinatorLayout 内容

android - 如何修复 FragmentManager 已经在 FragmentTransaction 中执行事务?

java - 如何将单击的 ListView 项目的文本发送到我的新 Activity ?