Android 利用反射+try catch实现sdk按需引入依赖库的方法
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按需引入依赖库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Android学习之SharedPerference存储详解
这篇文章主要为大家详细介绍了Android学习之SharedPerference存储的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-08-08Android开发中解析xml文件XmlUtils工具类与用法示例
这篇文章主要介绍了Android开发中解析xml文件XmlUtils工具类与用法,结合实例形式分析了Android开发中解析xml文件工具类定义与相关使用技巧,需要的朋友可以参考下2018-01-01Flutter加载图片流程MultiFrameImageStreamCompleter解析
这篇文章主要为大家介绍了Flutter加载图片流程MultiFrameImageStreamCompleter示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-04-04Android UI 之实现多级树形列表TreeView示例
这篇文章主要介绍了Android UI 之实现多级列表TreeView示例,TreeView就是在Windows中常见的多级列表树,有兴趣的可以了解一下。2017-03-03Android Navigation TabBar控件实现多彩标签栏
这篇文章主要为大家详细介绍了Android Navigation TabBar控件实现多彩标签栏的相关代码,感兴趣的小伙伴们可以参考一下2016-05-05
最新评论