Android 利用反射+try catch實(shí)現(xiàn)sdk按需引入依賴庫的方法
Android開發(fā)sdk過程中,很有可能在sdk內(nèi)部引入其他的三方sdk庫。比如開發(fā)sdk過程中可能同時(shí)包含Google和Facebook等SDK。但是接入方如果只想要接入包含Google登錄的SDK要怎么辦呢,gradle想只依賴Google的庫不依賴Facebook可以實(shí)現(xiàn)嗎?本文簡單利用反射+try catch即可實(shí)現(xiàn)按需接入,無需再新建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包起來,參數(shù)為三方sdk完整類名(包名+類名)
Class classGoogleSignIn = Class.forName("xxx");
這樣接入方直接引用自己想要接入的庫就好了,未引用的類報(bào)錯(cuò)會(huì)被catch接收,不至于閃退,簡單方便~
到此這篇關(guān)于Android 利用反射+try catch實(shí)現(xiàn)sdk按需引入依賴庫的方法的文章就介紹到這了,更多相關(guān)Android實(shí)現(xiàn)sdk按需引入依賴庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
android實(shí)現(xiàn)多點(diǎn)觸摸應(yīng)用
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)多點(diǎn)觸摸應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android Rsa數(shù)據(jù)加解密的介紹與使用示例
RSA是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。想起自己曾經(jīng)使用過的Rsa非對稱加密算法,閑下來總結(jié)一下。方便自己和大家以后使用的時(shí)候參考借鑒。下面來一起看看吧。2016-09-09Android Studio實(shí)現(xiàn)華為手機(jī)的充電動(dòng)畫效果
本篇文章介紹了我參照華為手機(jī)的充電動(dòng)畫來仿照實(shí)現(xiàn)的樣例,這個(gè)動(dòng)畫并不難實(shí)現(xiàn),不過案例精簡具有參考意義,需要的朋友快往下看吧2021-10-10Android App中用Handler實(shí)現(xiàn)ViewPager頁面的自動(dòng)切換
這篇文章主要介紹了Android App中用Handler實(shí)現(xiàn)ViewPager頁面的自動(dòng)切換的方法,類似于相冊自動(dòng)播放,主要是切換后要提示當(dāng)前頁面所在的位置,需要的朋友可以參考下2016-05-05android通過自定義toast實(shí)現(xiàn)懸浮通知效果的示例代碼
這篇文章主要介紹了android通過自定義toast實(shí)現(xiàn)懸浮通知效果,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10深入淺析Android手機(jī)衛(wèi)士保存密碼時(shí)進(jìn)行md5加密
一般的手機(jī)沒有root權(quán)限,進(jìn)不去data/data目錄,當(dāng)手機(jī)刷機(jī)了后,擁有root權(quán)限,就可以進(jìn)入data/data目錄,查看我們保存的密碼文件,因此我們需要對存入的密碼進(jìn)行MD5加密,接下來通過本文給大家介紹Android手機(jī)衛(wèi)士保存密碼時(shí)進(jìn)行md5加密,需要的朋友一起學(xué)習(xí)吧2016-04-04gradle配置國內(nèi)鏡像的實(shí)現(xiàn)
這篇文章主要介紹了gradle配置國內(nèi)鏡像的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Android DrawerLayout布局與NavigationView導(dǎo)航菜單應(yīng)用
這篇文章主要介紹了Android DrawerLayout抽屜布局與NavigationView導(dǎo)航菜單應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01