最近做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 失败的情况。解决方法是写一个类继承FileProvider。

 

import android.support.v4.content.FileProvider;

public class MyFileProvider extends FileProvider {
}
<provider android:name=\".MyFileProvider\" ... >

 

需要注意的是,最好第三方库的provider配置中的resource的 的文件名不要和依赖库中的文件名一致,要不然可能会产生一些未知的错误

具体参考:https://stackoverflow.com/questions/42893846/androidmanifest-merge-error-using-fileprovider

                  https://blog.csdn.net/weixue9/article/details/78353720

 

收藏 打印