我试图获取我在Android Studio项目中创建的数据库的路径。当我对路径进行硬编码时,它工作正常,但我无法获得路径。 实际路径是:
/data/data/package.name/databases/database.db
但getPath()
和getDatabasePath()
等函数会返回:
数据/用户/ 0 / package.name /数据库/ database.db
我得到了:
W / System:ClassLoader引用了未知路径:
消息。 我猜那是Uri的位置?如何检索实际路径?
答案 0 :(得分:0)
你是在传递它的背景吗?代码应该类似于
String path = context.getDatabasePath(DATABASE_NAME).getPath();
其中DATABASE_NAME是数据库的名称,您的上下文应该是您定义的上下文。
答案 1 :(得分:0)
但getPath()和getDatabasePath()等函数返回data / user / 0 / package.name / databases / database.db
它返回的是正确的答案,尽管你错过了领先的斜线。
实际路径为/data/data/package.name/databases/database.db
仅在某些操作系统版本上,有时仅在应用程序本身之外。 Android支持设备的多个用户;您的应用将看到的路径将取决于用户。
我得到:W / System:ClassLoader引用了未知路径:
这是一个随机警告,与此代码无关。
如何检索实际路径?
由于这似乎是数据库的路径,因此请使用getDatabasePath()
。