如何在构建gradle文件中更改android应用程序名称

wis*_*m46 4 gradle build.gradle android-gradle-plugin

我正在使用gradle为2个小型Android应用程序创建不同的风格,我想知道我是否可以在build.gradle中的xml文件上编辑应用程序名称,以获得不同的风格.

Xav*_*het 15

你什么意思app name?清单中的应用程序包名称或启动器中显示的应用程序名称?

如果是前者,请:

android {
  productFlavors {
    flavor1 {
      packageName 'com.example.flavor1'
    }
    flavor2 {
      packageName 'com.example.flavor2'
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

也可以覆盖应用名称,但您必须提供风味覆盖资源.

因此,创建以下文件:

  • src/flavor1/res/values/strings.xml
  • src/flavor2/res/values/strings.xml

在它们中只是覆盖包含您的应用程序名称的字符串资源(您的清单用于主要活动标签的那个通过类似的东西@string/app_name).您还可以根据需要提供不同的翻译.


Tom*_*Tom 9

你可以使用resValue,例如.

debug {
    resValue 'string', 'app_name', '"MyApp (Debug)"'`
}
release {
    resValue 'string', 'app_name', '"MyApp"'
}
Run Code Online (Sandbox Code Playgroud)

确保您的AndroidManifest android:label="@string/app_name"用于应用程序,并从strings.xml中删除app_name,因为它会与strings.xml尝试合并它们时生成的gradle冲突.


erg*_*cak 5

实际上......为了更明确的解释;

\n\n

build.gradle 中:

\n\n
ext {\n    APP_NAME = "My Fabulous App"\n    APP_NAME_DEBUG = "My Fabulous App debug"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在应用程序build.gradle中:

\n\n
android {\n    buildTypes {\n        debug {\n            manifestPlaceholders = [appName: APP_NAME_DEBUG]\n        }\n        release {\n            manifestPlaceholders = [appName: APP_NAME]\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以在AndroidManifest.xml中

\n\n
<application\n    ...\n    android:label="${appName}"\n    >\n
Run Code Online (Sandbox Code Playgroud)\n\n

是可能的。瞧\xc3\xa0!您有不同的应用程序名称用于发布和调试。

\n