记录淘宝客接入所遇到的问题

230 阅读3分钟

一、接入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后就会有这个问题。没办法只能排查。 完全没有头绪的东西。 到处浏览对应文章,最后偶然看到一个文章

image.png

想起会不会是淘宝sdk吧权限合并过去了。 结果还真是

image.png 没想到此sdk有如此实力,居然把主应用权限接过去了,那就只能自己抢回来了。最后在自己配置文件对应权限加

image.png 问题解决

三、低版本打不开下载页

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包

image.png

直接给他抬走

五、记得配混淆

一开始忘记了,记得配混淆,不然也报错闪退。打debug没问题,打release包就会闪退,加了混淆就行了

六、结语

上面的解决办法只是个人的一些处理办法、如果有更好的办法欢迎讨论。我也多学习。