由于 android.os.FileUriExposedException,Android 应用程序崩溃

问题描述

当我尝试更新应用程序时应用程序崩溃。在我们的应用程序中,我们将更新版本保存在缓存中,然后尝试从缓存中安装应用程序。由于 android.os.FileUriExposedException 应用程序崩溃 我找到了日志 android.os.FileUriExposedException: file:///storage/emulated/0/test.txt 通过 Intent.getData() 暴露在应用程序之外 我知道这个问题的解决方案。我修复了较新版本的应用程序。对于新版本的应用程序,我使用 FileProvider 进行 apk 安装,但旧版本的应用程序使用 Uri.fromFile(dest)。 现在的问题是应用程序的自动更新。我需要从旧版本的应用程序自动更新应用程序。当我尝试更新新应用程序时,它会下载该应用程序,但是在尝试安装应用程序时它崩溃了。有没有办法从旧版本的应用程序安装应用程序? 注意:之前的开发者没有为我们的应用使用 Play 商店。

提前致谢

解决方法

不要使用 Uri.fromFile() 您正在使用文件提供程序,所以使用 FileProvider.getUriForFile(Context context,String authority,File file) 否则文件提供程序的用途是什么。

FileProvider 文档 -> https://developer.android.com/reference/androidx/core/content/FileProvider