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.編譯打包的時候會優先查找渠道目錄下的文件