看到這個文章的,說明已經了解了fileprovider,差不多代碼加上去,但是為什么會有這個錯誤了?這里我記錄一下我遇到一種情況:support版本不一致導致的。
整個代碼是一個SDK,我的開發測試環境,是support.v4 25.0.0版本,我在xml文件里面定義兩個路徑 “cache-path”、"external-cache-path"。測試的時候,一切運行正常。
把SDK給到其他人使用的時候,發現異常了,提示“Failed to find configured root that contains”錯誤。明明一個設備,一樣的代碼為什么就運行不正常。然后開始debug,發現運行在
我的開發App里面,是解析到兩個路徑了,但是在其他人的時候,只能解析到一個路徑!,"external-cache-path"沒有識別。重新在fileprovider初始化的地方打上斷點,然后debug運行,還是一樣現象。
看了幾遍,終於發現,在support v4 23.2.0的版本,fileprovider里面沒有 "external-cache-path"這個路徑,我定義在xml的這個路徑,當然就識別不了,我自己開發工程使用的25.0.0,是有這個定義,就運行正常了。
知道這個問題原因了,改動起來很簡單,最粗暴改法,把25.0.0版本里面的fileprovider代碼復制一份,重新改個名稱,就可以搞定了。