Android FileProvider.GetUriForFile()引发异常。找不到配置的根目录
下面是我的代码,我试图在其中创建ContentUri,以便调用pdf查看器Android FileProvider.GetUriForFile()引发异常。找不到配置的根目录,android,xamarin,Android,Xamarin,下面是我的代码,我试图在其中创建ContentUri,以便调用pdf查看器 ~provider,位于中。我不知道mRoots.entrySet()中有什么东西是为了使应用程序崩溃 因此,在阅读源代码后,我发现提供程序正在尝试将/data/data/com.package/files/Library/OfflineAssets匹配到/data/data/com.package/。/Library/OfflineAssets 所以基本上我对android文件目录的理解是不正确的 确保您在data/d
~provider,位于
中。我不知道mRoots.entrySet()中有什么东西是为了使应用程序崩溃 因此,在阅读源代码后,我发现提供程序正在尝试将/data/data/com.package/files/Library/OfflineAssets匹配到/data/data/com.package/。/Library/OfflineAssets
所以基本上我对android文件目录的理解是不正确的
确保您在data/data/com.package/files/之后保存文件的目录与
路径属性匹配
~Updated
我也遇到了类似的问题(在我的应用程序中,我试图调用摄像头而不是PDF查看器),但后来我发现我的代码中有一个输入错误。
输入错误在AndroidManifest.xml中,正好在标记的“authorities”行中
对我来说
android:authorities="com.stackoverflow.test.camerawithfileprovider.fileprovider"
不起作用(当我调用camera实例时,应用程序崩溃),但如果我删除“文件”并替换该字符串,如下所示:
android:authorities="com.stackoverflow.test.camerawithfileprovider.provider"
我的应用程序运行平稳(应用程序拍摄照片,存储照片,并在客户端应用程序中返回活动预览)
你的应用程序也有同样的问题吗
var dir = "/data/data/com.tripleplay_services.triplesport/files/../Library/OfflineAssets/xamarin_documentation1_v1.pdf";
var newFile = new File(dir);
if(newFile.Exists ()) {
var contentUri = FileProvider.GetUriForFile(Context, "com.company.fileprovider", newFile);
}
android:authorities="com.stackoverflow.test.camerawithfileprovider.fileprovider"
android:authorities="com.stackoverflow.test.camerawithfileprovider.provider"