Android 应用程序因 android.os.FileUriExposedException 而崩溃
Android App is crashing because of android.os.FileUriExposedException
当我尝试更新应用程序时应用程序崩溃了。在我们的应用程序中,我们将更新版本保存在缓存中,然后尝试从缓存中安装应用程序。应用程序因 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
当我尝试更新应用程序时应用程序崩溃了。在我们的应用程序中,我们将更新版本保存在缓存中,然后尝试从缓存中安装应用程序。应用程序因 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