Android项目中如何获取自定义src子文件夹的路径?
关于访问src/my_custom_folder路径的解决方案
嘿,这个问题我碰到过好几次了,先给你划个重点:默认情况下,Android构建系统不会把src/my_custom_folder这类自定义目录打包到最终的APK里,所以你没法直接通过Context的API在运行时访问它。得根据你的需求分两种情况处理:
情况1:想把该文件夹内容打包进APK并运行时访问
如果这个文件夹里的资源是应用运行时需要用到的,那你需要修改Module级别的build.gradle文件,把它添加到构建系统的资源/资产目录列表里。最灵活的方式是把它当成额外的assets目录:
android { sourceSets { main { // 将自定义文件夹添加到assets源目录 assets.srcDirs += 'src/my_custom_folder' } } }
配置完同步项目后,src/my_custom_folder里的所有文件都会被打包到APK的assets目录下。这时候你就可以用熟悉的context.getAssets()API来访问里面的文件了,比如:
// 假设自定义文件夹里有个test.txt文件 InputStream inputStream = context.getAssets().open("test.txt");
如果你更倾向于把它当作资源目录(res),也可以把assets.srcDirs换成res.srcDirs,不过资源目录有严格的命名规范,assets更适合存放结构自由的文件。
情况2:仅开发阶段使用,无需打包进APK
如果这个文件夹只是开发时的临时工作目录,不需要随APK发布,那运行时设备上根本不会存在这个目录。这种情况下,你可以:
- 手动把文件夹里的内容复制到设备的内部存储(比如
context.getFilesDir()路径下)或者外部存储; - 在开发阶段通过ADB命令推送文件到设备指定位置:
adb push src/my_custom_folder/ /sdcard/your_app_folder/
之后就可以通过对应的存储路径访问这些文件了。
内容的提问来源于stack exchange,提问作者Alexei
相关产品推荐
相关产品推荐

