Android 利用反射+try catch实现sdk按需引入依赖库的方法
作者:ChrisZhao520 时间:2022-09-19 22:09:08
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接收,不至于闪退,简单方便~
来源:https://blog.csdn.net/z741092665/article/details/109429420
标签:Android,sdk,依赖库
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java数据封装树形结构代码实例
2022-04-12 08:11:44
使用Spring Cloud Feign上传文件的示例
2021-08-25 04:37:38
Android仿QQ微信侧滑删除效果
2023-07-08 11:22:15
![](https://img.aspxhome.com/file/2023/0/100590_0s.jpg)
Java中RedisUtils工具类的使用
2022-05-04 21:32:32
使用maven的profile构建不同环境配置的方法
2023-08-30 23:43:45
![](https://img.aspxhome.com/file/2023/1/125611_0s.png)
Android基础总结篇之三:Activity的task相关介绍
2023-06-15 14:47:17
![](https://img.aspxhome.com/file/2023/9/102619_0s.png)
java中对List分段操作的实例
2022-12-05 18:38:48
一篇文章带你入门Java Script
2023-09-12 06:09:24
.NET Core使用C#扫描并读取图片中的文字
2022-03-09 11:06:54
![](https://img.aspxhome.com/file/2023/6/111096_0s.jpg)
spring+srpingmvc+hibernate实现动态ztree生成树状图效果
2022-07-21 21:41:59
java网络编程基础知识介绍
2023-01-10 20:37:44
![](https://img.aspxhome.com/file/2023/7/77987_0s.jpg)
Java 回调函数详解及使用
2023-11-03 02:32:35
Java实现爬取百度图片的方法分析
2023-12-19 23:51:27
Java实现MD5消息摘要算法
2023-06-18 06:37:35
CentOS 7下JDK8的详细安装步骤
2022-02-18 12:06:28
![](https://img.aspxhome.com/file/2023/2/76302_0s.png)
Flutter 容器盒子模型的使用示例
2023-06-18 18:47:43
![](https://img.aspxhome.com/file/2023/4/85974_0s.png)
Spring MVC文件配置以及参数传递示例详解
2023-06-03 23:29:48
![](https://img.aspxhome.com/file/2023/0/108460_0s.png)
Java超全面梳理内部类的使用
2021-09-06 11:24:07
![](https://img.aspxhome.com/file/2023/3/62433_0s.png)
在Android开发中替换资源图片不起作用的解决方法
2022-05-18 03:15:28
Android编程使用android-support-design实现MD风格对话框功能示例
2022-05-19 03:46:39
![](https://img.aspxhome.com/file/2023/6/90176_0s.png)