Gradle渠道包的一些用法 Google Play

Google Play上架应用和国内市场还是有区别的,举个简单的例子:Goolge Play不能有热更新和应用内的自主的更新功能,所以像 "Bugly" 之类的不能打包进代码 , 使用 Gradle 的渠道包可以完美做到,以下是操作。

1、开启使用渠道

flavorDimensions "default"
productFlavors {
    official {
    }

    google {
    }
}

2、按渠道打包依赖

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])

    officialImplementation 'com.tencent.bugly:crashreport_upgrade:latest.release'
}

implementation 的前面加上渠道名称,即可在打包对于的渠道时打包依赖。officialimplementation 'xxx' bugly依赖仅在默认的打包下打包进APP,选择打包"google"的时候则不会有bugly依赖。

那么最后Google的安装包是没有Bugly SDK的,所以不能代码里面使用,使用反射初始化Bugly。

   private void checkRunBugly() {
        try {
            Class<?> clz = Class.forName("com.tencent.bugly.Bugly");
            Method method = clz.getMethod("init", Context.class, String.class, boolean.class);
            method.invoke(null, getApplicationContext(), "3fb3a511c7", false);
        } catch (Exception ignored) {

        }
    }