我使用gradle为2个小型Android应用程序创建不同的风格,我想知道我是否可以在build.gradle的xml文件中编辑应用程序名称,以获得不同的风格。
答案 0 :(得分:15)
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
之类的内容用于主要活动标签。您还可以根据需要提供不同的翻译。
答案 1 :(得分:9)
您可以使用description="WhoGives"&images[0][container]=“offerImages”&images[0][name]=“563f993e4b00ddad7ed42790_0.jpg”&images[1][container]=“ offerImages”&images[1][name]=“563f993e4b00ddad7ed42790_1.jpg"
,例如
resValue
确保您的AndroidManifest使用debug {
resValue 'string', 'app_name', '"MyApp (Debug)"'`
}
release {
resValue 'string', 'app_name', '"MyApp"'
}
作为应用程序,并从strings.xml中删除app_name,因为当它尝试合并时,它会与gradle生成的android:label="@string/app_name"
冲突。
答案 2 :(得分:4)
实际上......为了更明确的解释;
在主要 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}"
>
是可能的。瞧!您有不同的应用程序名称用于发布和调试。
答案 3 :(得分:0)
这个答案基于Tom's,它的效果最好,您可以使用gradle.properties
来进行构建过程中的进一步动画。
在build.gradle
:
debug {
resValue 'string', 'app_name', APP_NAME
}
在gradle.properties
:
APP_NAME="Template 1"
答案 4 :(得分:0)
清单
<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>
Gradle
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"]
}
}