使用产品口味时,应用程序名称在启动器中不会更改

时间:2016-10-11 06:54:32

标签: android android-gradle android-manifest

您好我正在使用产品口味,以获得我的应用程序的付费和免费版本。我设法做了所需的一切。然而,laucher中的应用程序名称对于这两种口味看起来都是相同的。这就是我这样做的方式。

productFlavors {
    free {
        applicationId "com.my.app"
        versionCode 11
        versionName "1.11"
        resValue "string", "app_name", "App free"
    }
    pro {
        applicationId "com.my.app.pro"
        versionCode 1
        versionName "1.0"
        resValue "string", "app_name", "App pro"
    }
}

然后在我的清单文件中,我有以下行

android:label="@string/app_name" >

之前我的字符串资源文件中有一个字符串app_name,其值为“App free”。我从文件中删除了该字符串,而是将字符串添加到产品flavor块中,如上所述。

问题是,在付费和免费版本中,启动器中的应用程序名称显示为“App free”,即使它应该是专业版中的“App pro”。

该名称显示在设置或安装时的应用列表中。只有这个名称位于启动器中的图标下方才会发生变化。

我尝试重新启动手机但是徒劳无功。有人可以请帮助。我正在使用Nexus 5 Android 6.谢谢!!

1 个答案:

答案 0 :(得分:1)

您可以尝试在终端中运行以下命令:

adb shell am broadcast -a "android.intent.action.PACKAGE_CHANGED" -d "package:com.your.package"

用您的应用程序包名替换com.your.package。如果它不起作用,您可以尝试按照here in the documentation提及的更多具体细节添加。

如果此技巧有效,您可以在应用程序的风格发生变化时发送相同的广播,以便启动器应用程序可以知道何时需要刷新您的应用程序详细信息。