下载apk以后自动安装的过程爆出来了下面的错误
01-06 23:00:52.405 7066-7066/com.ldw.marketm E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ldw.marketm, PID: 7066
android.os.FileUriExposedException: file:///storage/emulated/0/market/cache/com.moji.mjweather.apk exposed beyond app through Intent.getData()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1847)
at android.net.Uri.checkFileUriExposed(Uri.java:2346)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9000)
at android.content.Intent.prepareToLeaveProcess(Intent.java:8961)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1525)
at android.app.ContextImpl.startActivity(ContextImpl.java:826)
at android.app.ContextImpl.startActivity(ContextImpl.java:803)
at android.content.ContextWrapper.startActivity(ContextWrapper.java:356)
at com.ldw.marketm.holder.DetailBottomHolder.startInstallApp(DetailBottomHolder.java:168)
at com.ldw.marketm.holder.DetailBottomHolder.access$300(DetailBottomHolder.java:28)
at com.ldw.marketm.holder.DetailBottomHolder$2.onComplete(DetailBottomHolder.java:100)
at com.ldw.marketm.Utils.DownLoadFile$2.handleMessage(DownLoadFile.java:288)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6406)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)
解决的办法:
方法1:
这句话放到自己项目的MainActivity中,感觉比较简单,复制过去即可
//取消严格模式 FileProvider
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy( builder.build() );
}