android由于不同的渠道用到的依赖不同,比如个推sdk分谷歌市场版和国内版,要在同一个项目中根据渠道来分别加载两个sdk。
1.将两个jar包凡在src目录下的lib文件夹中,并且在gradle文件将两个jar包导入
在gradle中定义两个渠道比如:
productFlavors {
//国内渠道
official {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
//谷歌渠道
googleplay {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
}
dependencies {
//这一行是默认将app根目录下的libs文件夹的jar包引入
//所以使用下面的方法,将两个不同渠道的jar包放入其他lib文件夹中
implementation fileTree(include: ['*.jar'], dir: 'libs')
//导入的方式是渠道名加Compile,jar包的存放位置
officialCompile files('src/main/lib/GetuiSDK2.13.3.0.jar')
googleplayCompile files('src/main/lib/GetuiSDK4.3.8.0.jar')
}
2.因为谷歌版的个推有个函数是国内版没有的,所以代码需要分别对应渠道。否则编译打包会出错。
谷歌版的这个函数在国内版是没有的,这个函数在MainActivity中用到
PushManager.getInstance().setPrivacyPolicyStrategy(this, true)
3.在src目录下分别新建两个文件夹
并且存放于两个渠道的代码文件要对应main文件夹下的路径
4.这样就可以把main文件夹下的mainActivity代码注释了
5.编译打包的时候会优先查找渠道目录下的文件