最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 利用反射+try catch實(shí)現(xiàn)sdk按需引入依賴(lài)庫(kù)的方法

 更新時(shí)間:2020年11月03日 10:31:09   作者:ChrisZhao520  
這篇文章主要介紹了Android 利用反射+try catch來(lái)實(shí)現(xiàn)sdk按需引入依賴(lài)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

        Android開(kāi)發(fā)sdk過(guò)程中,很有可能在sdk內(nèi)部引入其他的三方sdk庫(kù)。比如開(kāi)發(fā)sdk過(guò)程中可能同時(shí)包含Google和Facebook等SDK。但是接入方如果只想要接入包含Google登錄的SDK要怎么辦呢,gradle想只依賴(lài)Google的庫(kù)不依賴(lài)Facebook可以實(shí)現(xiàn)嗎?本文簡(jiǎn)單利用反射+try catch即可實(shí)現(xiàn)按需接入,無(wú)需再新建module和考慮代碼分離的問(wèn)題。

        在自己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代碼之前加上類(lèi)反射的代碼,再用try+catch包起來(lái),參數(shù)為三方sdk完整類(lèi)名(包名+類(lèi)名)

Class classGoogleSignIn = Class.forName("xxx");

這樣接入方直接引用自己想要接入的庫(kù)就好了,未引用的類(lèi)報(bào)錯(cuò)會(huì)被catch接收,不至于閃退,簡(jiǎn)單方便~

到此這篇關(guān)于Android 利用反射+try catch實(shí)現(xiàn)sdk按需引入依賴(lài)庫(kù)的方法的文章就介紹到這了,更多相關(guān)Android實(shí)現(xiàn)sdk按需引入依賴(lài)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

双峰县| 永寿县| 扶风县| 临安市| 玉田县| 灵璧县| 吕梁市| 百色市| 黄骅市| 澎湖县| 威宁| 广灵县| 娄底市| 淮阳县| 威海市| 五寨县| 永安市| 兴宁市| 哈巴河县| 高碑店市| 建平县| 万载县| 湛江市| 龙胜| 安溪县| 漳浦县| 前郭尔| 无极县| 林西县| 大同县| 安溪县| 重庆市| 江达县| 石首市| 大洼县| 潞城市| 如皋市| 华亭县| 晋江市| 团风县| 阿合奇县|