一、接入aar包和原有依赖冲突问题
1.接入淘宝客aar包后出现问题冲突
首先通过命令行查看依赖树看依赖的冲突在哪里
在windows上Android studio Terminal中使用这个命令:
gradlew :app:dependencies(“app”为module名称)
在MacOS中使用下面的命令:
./gradlew :app:dependencies(“app”为module名称)
这个命令会将gradle执行的各个步骤都打印出来,包括releaseUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseRuntimeClasspath,releaseCompileClasspath,lintClassPath,debugUnitTestRuntimeClasspath等等。
那么,我们可以配置configuration 参数只查看其中一个的依赖树就够了。
./gradlew :app:dependencies --configuration compile
在Window系统下,无需使用./开头,直接使用gradlew即可。
执行app模块下的dependencies任务;额外配置compile,编译环境下的依赖项。
查看到后一般是通过
configurations.all {
resolutionStrategy.force '你的依赖链接'
exclude group: 'com.aliyun.ams', module: 'alicloud-android-ut'
exclude group: 'com.aliyun.ams', module: 'alicloud-android-utdid'
}
这个方式处理,不过这里有一个问题就是,淘宝客是aar包加这个没啥用,需要把这个加在和你冲突的对应的依赖链接上,就能解决问题了。
configurations.all {
resolutionStrategy.force '和你冲突的依赖链接'
exclude group: 'com.aliyun.ams', module: 'alicloud-android-ut'
exclude group: 'com.aliyun.ams', module: 'alicloud-android-utdid'
}
二、接入淘宝客之后主app的权限全没了
离谱非常离谱当时接入sdk后自己应用的所有权限全没了。排查问题的时候根本没怀疑到这个sdk上来,不过最后切换别的开发分支又没这个问题,只有加了这个sdk后就会有这个问题。没办法只能排查。 完全没有头绪的东西。 到处浏览对应文章,最后偶然看到一个文章
想起会不会是淘宝sdk吧权限合并过去了。 结果还真是
没想到此sdk有如此实力,居然把主应用权限接过去了,那就只能自己抢回来了。最后在自己配置文件对应权限加
问题解决
三、低版本打不开下载页
Android低版本的时候如果没有安装淘宝会跳转到下载页,不过跳过去一直闪退,发现是有个东西拿不到,当时急着上线就只能自己处理了,如果是低版本就跳应用市场不跳下载页。
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
showParams.setDegradeType(AlibcDegradeType.NONE);
if (!isAppInstalled(activity, "com.taobao.taobao")) {
ToastUtils.showShort("请先安装淘宝应用");
goMarket(activity, "com.taobao.taobao");
}
}
/**
* 去到当前手机应用市场的对应包名的app
*
* @param context
* @param packageName 制定的应用包名
*/
public static void goMarket(Context context, String packageName) {
Uri uri = Uri.parse("market://details?id=" + packageName);
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
try {
context.startActivity(goToMarket);
} catch (ActivityNotFoundException e) {
ToastUtils.showShort("尚未安装应用市场");
}
}
四、so包冲突问题
刚送走依赖冲突SO包也开始冲突了,根据对应报错找到对应的so包
直接给他抬走
五、记得配混淆
一开始忘记了,记得配混淆,不然也报错闪退。打debug没问题,打release包就会闪退,加了混淆就行了
六、结语
上面的解决办法只是个人的一些处理办法、如果有更好的办法欢迎讨论。我也多学习。