【问题标题】:how to change android app name in the build gradle file如何在构建 gradle 文件中更改 android 应用程序名称
【发布时间】:2014-05-01 16:03:30
【问题描述】:

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

【问题讨论】:

  • 我已经回答了here,你可以看一下我的回答,可能对你有帮助。

标签: gradle android-gradle-plugin build.gradle


【解决方案1】:

清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.myapp"> 


<application
    tools:replace="android:label"
    android:label="${appName}"
    android:theme="@style/AppTheme">

 <activity
    android:name=".MainActivity"      
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:label="${appName}"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

分级

buildTypes {
    release {
         minifyEnabled enableProguardInReleaseBuilds
         proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
         signingConfig signingConfigs.release
//       manifestPlaceholders = [appName: appConfig.appName]
         manifestPlaceholders = [appName: "Your app Name"]

    }

    debug {
         signingConfig signingConfigs.release
//       manifestPlaceholders = [appName: appConfig.appName]
         manifestPlaceholders = [appName: "Your app Name"] 

    }
}

【讨论】:

    【解决方案2】:

    此答案基于 Tom 的,效果最好,您可以使用 gradle.properties 以允许在构建过程中进一步制作动画。

    build.gradle

    debug {
      resValue 'string', 'app_name', APP_NAME
    }
    

    gradle.properties:

    APP_NAME="Template 1"
    

    【讨论】:

      【解决方案3】:

      其实……求更明确的解释;

      ma​​in build.gradle 中:

      ext {
          APP_NAME = "My Fabulous App"
          APP_NAME_DEBUG = "My Fabulous App debug"
      }
      

      app build.gradle 中:

      android {
          buildTypes {
              debug {
                  manifestPlaceholders = [appName: APP_NAME_DEBUG]
              }
              release {
                  manifestPlaceholders = [appName: APP_NAME]
              }
          }
      }
      

      所以在 AndroidManifest.xml 中

      <application
          ...
          android:label="${appName}"
          >
      

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

      【讨论】:

      • 在我看来,这是最好的方法,因为它允许为发布版本 (manifestPlaceholders = [appName: "@string/app_name"]) 使用本地化的应用名称,并为调试版本使用非本地化名称。
      【解决方案4】:

      您可以使用resValue,例如。

      debug {
          resValue 'string', 'app_name', '"MyApp (Debug)"'`
      }
      release {
          resValue 'string', 'app_name', '"MyApp"'
      }
      

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

      【讨论】:

      • 这其实是一个很好的答案。我不知道为什么人们会根据手动创建 strings.xml 的内容来投票,但 resValue 应该是正确的方法,因为您可以将实际值放入 gradle.properties
      【解决方案5】:

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

      如果是前者,那么:

      android {
        productFlavors {
          flavor1 {
            packageName 'com.example.flavor1'
          }
          flavor2 {
            packageName 'com.example.flavor2'
          }
        }
      }
      

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

      所以创建以下文件:

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

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

      【讨论】:

      • 没错,我正在寻找覆盖应用程序名称的解决方案,我使用了复制方法,结果我有一个新文件夹,其中包含一个新的 string.xml 已修改,包含新的应用程序名称!问题是如何避免创建该新文件。我喜欢只是替换它。
      • 这是最好的方法。到处乱窜以编辑文件并不是一个好主意,因为它会破坏对增量构建的检测。
      • 找到 app/src/freefacebook/res/values/strings.xml -type f -exec perl -pi -w -e 's/My_Application/free_facebook/g' {} \;
      • 更新:Android gradle 插件现在可以定义如下资源: resValue ,, 以提供您的 gradle 脚本中的字符串。
      • @HassanIbraheem 文档参考好吗?
      猜你喜欢
      • 2014-09-07
      • 2013-08-31
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2014-02-20
      • 1970-01-01
      相关资源
      最近更新 更多