我根据ABI而不是密度来拆分我的应用程序,如下所示:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi', 'armeabi-v7a', 'mips', 'arm64-v8a'
universalApk true
}
}
我有多种口味以及2种构建类型(debug和release)。我想将包含所有平台本地库的通用apk文件上传到fabric beta。据我了解,这可以通过ext.betaDistributionApkFilePath属性来实现。
我可以在buildType级别或flavor级别定义此属性。问题是我需要同时选择构建类型和口味以获取我的变体 - 就像这样:
android.applicationVariants.all { variant ->
variant.ext.betaDistributionApkFilePath = "${buildDir}/outputs/apk/app-${variant.productFlavors[0].name}-universal-${variant.buildType.name}.apk"
}
或者
gradle.taskGraph.beforeTask { Task task ->
if(task.name ==~ /crashlyticsUploadDistribution.*/) {
System.out.println("task name: ${task.name}");
android.applicationVariants.all { variant ->
System.out.println("match: crashlyticsUploadDistribution${variant.name}");
if(task.name ==~ /(?i)crashlyticsUploadDistribution${variant.name}/){
ext.betaDistributionApkFilePath = "${buildDir}/outputs/apk/app-${variant.productFlavors[0].name}-universal-${variant.buildType.name}.apk"
System.out.println(ext.betaDistributionApkFilePath);
}
}
}
很遗憾,目前似乎无法实现这个功能 - 现在有没有其他的方法?