我需要拆分平板电脑和手机的清单。
productFlavors {
phone {
applicationId "packageName.app.phone"
buildConfigField 'boolean', 'IsPhone', 'true'
versionName "1.0-phone"
}
tablet {
applicationId "packageName.app.tablet"
buildConfigField 'boolean', 'IsPhone', 'false'
versionName "1.0-tablet"
}
}
使用gradle我分割布局和src文件夹但我需要拆分AndroidManifest xml文件。任何人都可以提出一些想法我该怎么做。谢谢
编辑:
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "packagename"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
phone {
applicationId "packagename.app.phone"
buildConfigField 'boolean', 'IsPhone', 'true'
versionName "1.0-phone"
}
tablet {
applicationId "packagename.app.tablet"
buildConfigField 'boolean', 'IsPhone', 'false'
versionName "1.0-tablet"
}
}
}
这是我的全力以赴。
编辑2 因此,经过许多研究:)我找到了答案。我写信给包名,如$ {applicationId}。工作得很好。但我真的很感兴趣如何分割清单文件。任何人都可以分享关于这个主题的链接或其他内容。谢谢。
<receiver
android:name="com.parse.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
答案 0 :(得分:1)
考虑到您正在为项目使用默认布局,您将拥有一个结构为
的文件夹app/src/main/AndroidManifest.xml
app/src/phone/AndroidManifest.xml
app/src/tablet/AndroidManifest.xml
此处main/AndroidManifest.xml
是您的默认清单,而您在flavor目录中放置的那些是您具有特殊配置的那些。然后在构建风味时将其与默认清单合并。
答案 1 :(得分:0)
使用属性manifest.srcFile:
android {
sourceSets {
phone {
manifest.srcFile 'AndroidManifest_phone.xml'
...
}
tablet {
manifest.srcFile 'AndroidManifest_tablet.xml'
...
}
}
}