我分裂我的應用程序基於ABI,而不是密度,就像這樣:面料Beta版和APK分裂
splits {
abi {
enable true
reset()
include 'x86', 'armeabi', 'armeabi-v7a', 'mips', 'arm64-v8a'
universalApk true
}
}
我有多種口味,和2構建類型(debug和release)。我想把通用apk文件放在織物測試版上,它具有適用於所有平臺的本機庫。據我所知,這是通過ext.betaDistributionApkFilePath屬性支持的。
我可以在buildType級別或風格級別來定義它。問題是,我需要同時構建類型和風味拿起我的變種 - 這樣的事情:
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);
}
}
}
可惜,這似乎並沒有工作 - 有沒有辦法做到目前呢?
這就像沒有定義變量 - 警告我有關多個apk文件,然後退出。 – Mark
感謝Mark,只要知道通用APK的路徑,就應該開展工作。建築是否正確填充該路徑? –
如果我在配置中對ext.betaDistributionApkFilePath進行硬編碼,並且沒有變量,它會發現通用apk文件很好,例如ext.betaDistributionApkFilePath = 「應用程序/生成/輸出/ APK/APP-flavor1-萬向debug.apk」。我想要做的是根據構建風格(lite/pro)和構建類型(release/debug)動態設置路徑。每種構建風味和類型組合都有一個獨特的applicationId。 – Mark