Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – Fabric Beta和APK拆分大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我基于ABI而不是密度分割我的应用程序,如下所示:
splits {
       abi {
           enable true
           reset()
           include 'x86','armeabi','armeabi-v7a','mips','arm64-v8a'
           universalApk true
       }
    }

我有多种口味和2种构建类型(调试和发布).我想把通用的apk文件放在面料测试版上,该文件包含适用于所有平台的原生库.据我所知,这是通过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);
       }
   }
}

不幸的是,这似乎不起作用 – 目前有没有办法做到这一点?

解决方法

对于每个现有变体,您可以添加将在Crashlytics任务之前执行的操作,并根据变体名称设置ext.betaDiStributionApkFilePath.这就是它的样子:
android.applicationVariants.all { variant ->
  variant.outputs.each { output ->
    // Filter is null for universal APKs.
    def filter = output.getFilter(com.android.build.outputFile.ABI)

    if (filter == null) {
      tasks.findAll {
        it.name.startsWith(
            "crashlyticsUploadDiStribution${variant.name.capitalize()}")
      }.each {
        it.doFirst {
          ext.betaDiStributionApkFilePath = output.outputFile.absolutePath
        }
      }

      tasks.findAll {
        it.name.startsWith(
            "crashlyticsUploadSymbols${variant.name.capitalize()}")
      }.each {
        it.doFirst {
          ext.betaDiStributionApkFilePath = output.outputFile.absolutePath
        }
      }
    }
  }
}

大佬总结

以上是大佬教程为你收集整理的android – Fabric Beta和APK拆分全部内容,希望文章能够帮你解决android – Fabric Beta和APK拆分所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。