Android 不同的口味与渐变不同
我有这样的情况:4味,我必须有8个建设,共4个应用程序声明在清单中的可访问性和4没有。 我在清单中找到了声明2个buildType的唯一解决方案,这样我就可以为buildType创建一个源集,并指定manifest src。但这样的话,我有欠考虑Android 不同的口味与渐变不同,android,gradle,android-manifest,Android,Gradle,Android Manifest,我有这样的情况:4味,我必须有8个建设,共4个应用程序声明在清单中的可访问性和4没有。 我在清单中找到了声明2个buildType的唯一解决方案,这样我就可以为buildType创建一个源集,并指定manifest src。但这样的话,我有欠考虑 可达性 无可达性 调试 释放 所以现在我无法测试可调试性debug,所以我必须创建另外两个指定可调试true的构建类型。最后的情况是 可达性 可访问性调试 无可达性 无可访问性调试 调试 释放 这些只是构建类型,但我也有4种风格,所以我的构建变体是24
flavor1/accessibilty
flavor1/no accessibilty
flavor2/accessibilty
flavor2/no accessibilty
ecc..
首次实施
buildTypes {
noaccesibiltyDebug {
minifyEnabled false
debuggable true
}
accessibilityDebug {
minifyEnabled false
debuggable true
}
noaccessibilty {
minifyEnabled true
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
accessibility {
minifyEnabled true
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
noaccessibiltyDebug {
manifest.srcFile('/src/main/AndroidManifest.xml')
}
accessibilityDebug {
manifest.srcFile('/src/main/accessibility/AndroidManifest.xml')
}
noaccessibilty {
manifest.srcFile('/src/main/AndroidManifest.xml')
}
accessibility {
manifest.srcFile('/src/main/accessibility/AndroidManifest.xml')
}
}
结果
build/output/apk/accessibilty
/noaccessibilty
/accessibiltyDebug
/noaccessibiltyRelease
/debug <- **********useless**********
/release <- **********useless**********
build/output/apk/accessibility
/无效
/易接近性缺陷
/无乙酰基二酪氨酸酯酶
/调试我不确定您是否应该依赖构建类型。仅使用调味品适合这种情况。
例如,您应该像往常一样设置主清单,在build.gradle中,您可以声明一个补充清单:
android.sourceSets.flavor1{
res {
srcDir 'app/src/flavor1/res'
}
resources {
srcDir 'app/src/flavor1/res'
}
java {
srcDir 'app/src/flavor1/src'
}
manifest {
srcFile 'app/src/flavor1/AndroidManifest.xml'
}
}
然后,在特定的flavor1清单文件中,您可以添加声明,或者根据需要使用工具删除声明:例如,节点标记
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"/>
然后,清单合并工具将使用所需的声明构建您的所有风格。这并不是我所需要的,因为这样我需要复制我的所有风格,4个用于具有可访问性的清单,4个用于不具有可访问性的清单。当然,它是有效的,但它与构建类型并没有真正的区别。不清楚您要求什么或需要什么。请分享一些代码片段以便更好地理解。@RaguSwaminathan现在更好了吗?