时间:2021-05-19
Android开发sdk过程中,很有可能在sdk内部引入其他的三方sdk库。比如开发sdk过程中可能同时包含Google和Facebook等SDK。但是接入方如果只想要接入包含Google登录的SDK要怎么办呢,gradle想只依赖Google的库不依赖Facebook可以实现吗?本文简单利用反射+try catch即可实现按需接入,无需再新建module和考虑代码分离的问题。
在自己SDK代码中使用三方sdk的地方做如下处理:
原代码:
Intent googleSignInIntent = GoogleSignIn.getClient(mLoginActivity, mSignInOption).getSignInIntent();if (googleSignInIntent != null){ mLoginActivity.startActivityForResult(googleSignInIntent, requestCode);}处理后的代码:
try{ Class classGoogleSignIn = Class.forName("com.google.android.gms.auth.api.signin.GoogleSignIn"); Intent googleSignInIntent = GoogleSignIn.getClient(mLoginActivity, mSignInOption).getSignInIntent(); if (googleSignInIntent != null) { mLoginActivity.startActivityForResult(googleSignInIntent, requestCode); }}catch (Exception e){ e.printStackTrace();}即在使用三方sdk代码之前加上类反射的代码,再用try+catch包起来,参数为三方sdk完整类名(包名+类名)
Class classGoogleSignIn = Class.forName("xxx");这样接入方直接引用自己想要接入的库就好了,未引用的类报错会被catch接收,不至于闪退,简单方便~
到此这篇关于Android 利用反射+try catch实现sdk按需引入依赖库的方法的文章就介绍到这了,更多相关Android实现sdk按需引入依赖库内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、try-catch语句ECMA-262第3版引入了try-catch语句,作为JavaScript中处理异常的一种标准方式。语法:try{//可能会导致错误
Java中有两种处理异常的方式,分别是用throws抛出异常、用try、catch捕获异常。try-catch在Javatry-catch语句的语法格式:try
如下所示:Document//cache缓存//try-catch-finally//1如果try中的代码出现了异常,就会被catch住,再catch中处理异常
引入腾讯云依赖com.tencentcloudapitencentcloud-sdk-java3.1.111com.github.qcloudsmsqcloud
java实现邮件发送逻辑并不复杂(不包含附件),只是根据官方调用官方提供的sdk,首先需要引入maven依赖:javax.mailcom.sun.mailjav