<分区>
我们有一个应用程序具有相同的代码,但针对不同国家/地区的 Apk 不同。我应该使用什么方法来动态更改包名称?
<分区>
我们有一个应用程序具有相同的代码,但针对不同国家/地区的 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.java
和 app2/java/com/.../MyClass.java
在左下角,您可以切换构建变体以在模拟器或设备中运行应用。
当您创建 .apk 或 .aab 时,您可以选择要构建的应用。
关于android - 多个 apk 的多个包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56143393/
相关文章:
Android Lollipop - PackageInstaller.Session commit()
android - 找不到 android.app.ApplicationPackageManager
java - 将字符串转换为 JSONArray(不是来自 gson 的 JsonArray)
android - 节点尚未附加到 `PropsAnimatedNode.updateView` 中的 View
android - 如何在 Android 中检索具有相同包名称的多个应用程序?
android - 滚动 AppBarLayout 不会滚动 CoordinatorLayout 内容
android - 如何修复 FragmentManager 已经在 FragmentTransaction 中执行事务?