最近做apk升级功能,需要下载并安装apk。在安装过程中出现了android 8.0 手机上出现了android.os.FileUriExposedException错误。查找一番,是因为android 7.0 之后需要FileProvider来实现file://文件转换Uri。具体实现可以参考:
鸿洋的博客 : https://blog.csdn.net/lmj623565791/article/details/72859156
ps:在使用过程中可能会出现第三方的库或框架,已经使用FileProvider,android studio 在sync之后,出现manifest merge failed的情况。解决方法是写一个空类继承FileProvider。
import android.support.v4.content.FileProvider;
public class MyFileProvider extends FileProvider {
}
<provider android:name=".MyFileProvider" ... >
需要注意的是,最好第三方库的provider配置中的resource的XML的文件名不要和依赖库中的文件名一致,要不然可能会产生一些未知的错误
具体参考:https://stackoverflow.com/questions/42893846/androidmanifest-merge-error-using-fileprovider
https://blog.csdn.net/weixue9/article/details/78353720