我想备份我的应用程序的房间数据库。我试图使用FileProvider
获取数据库的uri,但它在这一行抛出了IAE:
Uri contentUri = FileProvider.getUriForFile(this,
"com.trulden.friends.FileProvider", getDatabasePath(DATABASE_NAME));
在AndroidManifest中。xml
我有这个提供者标签:
<application .. >
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.FileProvider"
android:exported="false"
android:grantUriPermissions="true"
>
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"
/>
</provider>
...
</application>
provider\u路径。xml
如下所示:
<paths>
<files-path name="database" path="databases/"/>
</paths>
错误:
08-29 13:28:27.430 8146-8146/com.trulden.friends E/MessageQueue-JNI: java.lang.IllegalArgumentException:
Failed to find configured root that contains
/data/data/com.trulden.friends/databases/friends_database
at androidx.core.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:739)
getDatabasePath(数据库名称)的结果。getAbsolutePath()
如下所示:
/data/data/com.trulden.friends/databases/friends_database
FileProvider
只能访问files/
子目录中的文件,所以我将它们复制到了那里。
仍然无法理解为什么错误看起来像是未能找到
,而实际上应该是未能访问
。
另外,Room数据库实际上有三个文件。我得到了他们这样的路径:
String dbPath = getDatabasePath(DATABASE_NAME).getAbsolutePath();
String[] dbFiles = {dbPath, dbPath + "-wal", dbPath + "-shm"};
FileProvider
不支持从该位置提供内容。如果您希望直接从该位置提供服务,则需要实现自己的ContentProvider
。
另外,请注意,一个数据库可能是多个文件,特别是如果启用了WAL。getDatabase asePath()
来自API Level 1,早在WAL不存在并且SQLite数据库总是只有一个文件的时候。
我正在使用QAF,这是一个很棒的工具,但我有一个问题。有没有什么方法可以像在BDD文件中那样使用自定义数据提供程序参数化cucumber功能步骤? 例如,我们可以从外部文件插入数据 在里面BDD是这样做的:
我想使用房间数据库,但在构建应用程序时出现以下错误: 执行组织时出错。喷气式飞机。科特林。格拉德尔。内部的KaptExecution公司 和一些这样的错误: 错误:不确定如何将游标转换为此方法的返回类型(java.util.ArrayList 我将数据库与这些类一起使用: 书签实体: 书签数据库: 书签DAO: 我为房间添加此依赖项: 并在构建顶部添加应用插件:“kotlin kapt”。grad
好的,我找了又找,没有找到一个有类似问题的人。我正在开发一个使用Android Studio的Android应用程序,并已开始创建我的SQLite数据库。为了测试我的创建和升级功能,我想提取我的SQLite数据库并查看其内容。 在线说明相当清楚,打开Android设备监视器,选择设备,进入文件资源管理器,然后浏览数据文件夹中的几个层次以找到您的。数据库文件。麻烦就从这里开始。我根本无法展开根级别的
manifest.xml提供商 资源文件 使用fileprovider 参考:此处 描述:我无法使用此文件提供程序打开图像、文本文件、pdf。当我打开文件文本文件时,它的give me ERR\u UNKNOWN\u URL\u方案。如果我打开图片或pdf,它什么都不显示
问题内容: 我正在使用SQLMemebershipProvider并使用配置文件。我有一个名为UserProfile的自定义类,该类继承自ProfileBase类,并使用它来设置自定义属性,例如“FullName”。我想遍历数据库中的所有用户并获得对其配置文件属性的访问。在每次迭代中,我都调用ProfileBase.Create()以获得新的配置文件,然后访问属性。 在我看来,每次调用Profil
我有两个app:app1和app2。 App2具有: paths.xml: App2在其活动中从App1接收获取映像URI的请求。确定URI后,App2活动执行以下操作: 从App2接收回结果后,App1执行以下操作: 在App1中,从App2返回时,我得到以下异常: java.lang.SecurityException:权限拒绝:从ProcessRecord{52a99eb0 3493:com