Android 多個FileProvider沖突的問題


Android7.0對文件的訪問,框架使用StrictMode Api禁止我們的應用對外部(跨越應用分享)公開file://,在訪問文件時需要增加FileProvider授權,這里不再贅述這個問題;

  當應用中存在多個FileProvider的時候(比如在引入了一個第三方開源,例takePhoto,開源框架為了適配android7.0文件的訪問也使用了FileProvider),在編譯時便會報錯:

在報了錯誤信息之后androidStudio也給出了一個解決方法,增加 tools:replace="android:authorities"屬性,這么一來編譯時通過了,但是在使用takePhoto的時候卻出現了致命錯誤UndeclaredThrowableException;

此時我們就會想到使用自定義的FileProvider來避免沖突,既自己寫一個FileProvider繼承自android.support.v4.content.FileProvider,然后在清單文件里完成配置;特別要注意一點(被這個細節小坑了一下),在配置自定義的FileProvider的時候,resource指向的xml一定要保證唯一,比如takePhoto使用了最原始的命名file_paths.xml,那么自定義的FileProvider需要用另一個xml配置(比如file_paths1.xml),避免takePhoto使用的異常(壓縮圖片失敗等問題), 我自己花了較多的時間解決了這個Bug,希望能幫助后來人。

~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM