文件读写 file.mkdirs()为啥总是返回false

本文分享了一次在开发过程中遇到的困难经历:文件读写时使用了file.mkdirs()方法,但始终返回false。经过一番排查,最终发现原因在于未给予设备SD卡读取权限。提醒开发者在进行文件操作前务必检查权限设置,避免类似问题的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 今天碰到个坑爹问题,文件读写file.mkdirs()方法总是返回false。原以为是代码问题,后面调了半天才发现,原来是没有给sd卡读取权限!安卓sd卡权限没给是不会报错的,记下来深以为戒!
Cmd line: com.android.soundrecorder Build fingerprint: 'iHand55/iHand55/iHand55:14/UP1A.231005.007/eng.zztl.20250730.183813:user/release-keys' ABI: 'arm64' Build type: optimized suspend all histogram: Sum: 2.239ms 99% C.I. 1us-1893.279us Avg: 172.230us Max: 1995us DALVIK THREADS (17): "main" prio=5 tid=1 Native | group="main" sCount=1 ucsCount=0 flags=1 obj=0x733ac4c8 self=0xb40000703ac2f6f0 | sysTid=12108 nice=-20 cgrp=top-app sched=0/0 handle=0x72fa57f4f8 | state=S schedstat=( 3647210499 102131647 1918 ) utm=288 stm=75 core=1 HZ=100 | stack=0x7fef869000-0x7fef86b000 stackSize=8188KB | held mutexes= native: #00 pc 000c2108 /apex/com.android.runtime/lib64/bionic/libc.so (mkdirat+8) (BuildId: c3622b5c0a4cde0d723ea2d964ec71b7) native: #01 pc 0002b24c /apex/com.android.art/lib64/libopenjdk.so (Java_java_io_UnixFileSystem_createDirectory0+92) (BuildId: c2be030b12d5d636e6dfc80ef23f2693) at java.io.UnixFileSystem.createDirectory0(Native method) at java.io.UnixFileSystem.createDirectory(UnixFileSystem.java:386) at java.io.File.mkdir(File.java:1323) at java.io.File.mkdirs(File.java:1362) at java.io.File.mkdirs(File.java:1361) at com.sprd.soundrecorder.SettingActivity.h(SettingActivity.java:12) at com.sprd.soundrecorder.SettingActivity.i(SettingActivity.java:58) at com.sprd.soundrecorder.SettingActivity.j(SettingActivity.java:8) at com.sprd.soundrecorder.service.RecordingService.onStartCommand(RecordingService.java:8) at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4934) at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(unavailable:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2381) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.app.ActivityThread.main(ActivityThread.java:8376) at java.lang.reflect.Method.invoke(Native method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:640) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:982)
最新发布
08-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值