这是我的代码,我试图在其中创建一个ContentUri,这样我就可以调用一个pdf查看器。
~位于<Application>和<authority>内的provider与包名称完全匹配
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.company.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>~ xml/filepaths.xml
<?xml version="1.0" encoding="UTF-8" ?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="assets" path="Library/OfflineAssets/"/>
</paths> ~ .cs,但我有例外
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);
}太棒了!
找不到包含/data/data/com.company/Library/OfflineAssets/xamarin_documentation1_v1.pdf的已配置根
我一切都是照章办事的。我被卡住了,无法继续。
Here is where the exception is thrown。我不知道mRoots.entrySet()中有什么是用来使应用崩溃的。
发布于 2016-01-08 20:22:17
因此,在阅读源代码后,我发现提供程序正在尝试将/data/data/com.package/files/Library/OfflineAssets与/data/data/com.package/../Library/OfflineAssets进行匹配
所以基本上我对android文件目录的理解是不正确的。
确保无论您将文件保存到哪个目录,在<files-path> path属性中,data/data/com.package/ files /都是匹配的。
~已更新的<files-path>
<files-path name="assets" path="../Library/OfflineAssets/" />
发布于 2017-06-21 20:26:16
我遇到了类似的问题(在我的应用程序中,我试图调用相机而不是PDF查看器),但后来我发现我的代码中有一个拼写错误。拼写错误出现在AndroidManifest.xml中,准确地进入了“当局”一行的标签中。
对我来说,
android:authorities="com.stackoverflow.test.camerawithfileprovider.fileprovider"不工作(当我调用摄像头实例时,应用程序崩溃),但如果我删除"file“并将该字符串替换为以下内容:
android:authorities="com.stackoverflow.test.camerawithfileprovider.provider"我的应用程序运行流畅(应用程序拍摄照片,存储照片,并在客户端应用程序中返回活动预览)。
你的应用程序也有同样的问题吗?
https://stackoverflow.com/questions/34660545
复制相似问题