如何获取Android自定义资源目录text的路径?
解决Android自定义资源目录无法通过R类访问的问题
问题原因
Android的res目录仅支持系统预定义的资源类型子目录(如raw、drawable、layout、values等),自定义命名的text目录不会被编译工具扫描,因此不会生成对应的R.text引用,手动编写会触发Unresolved reference: text编译错误。
可行解决方案
方案1:将JSON文件移至res/raw目录
- 在
res目录下创建raw子目录(如果不存在),将JSON文件放入其中 - 编译项目后,系统会自动生成
R.raw.xxx的引用,可通过以下方式获取资源路径:
或者直接通过资源管理器读取文件内容:val resourcePath = "android.resource://$packageName/${R.raw.your_json_file}"val inputStream = resources.openRawResource(R.raw.your_json_file) // 后续可将inputStream转换为字符串或其他格式处理
方案2:使用assets目录存放自定义资源
- 在
main目录下创建assets子目录(如果不存在),在其中创建text子目录并放入JSON文件 - 通过
AssetManager访问文件,示例代码:val inputStream = assets.open("text/your_json_file.json") // 读取文件内容注意:
assets目录下的文件不会生成R类引用,且无法直接获取文件路径,只能通过输入流读取;若必须获取路径,需先将文件复制到应用私有存储目录,再读取本地路径。
内容的提问来源于stack exchange,提问作者Никита Попов
相关产品推荐
相关产品推荐

