Kotlin开发中WRITE_EXTERNAL_STORAGE未解析引用问题求助
解决
Unresolved reference: WRITE_EXTERNAL_STORAGE错误的方法 1. 检查并修正导入语句
确保代码顶部导入的是系统权限类,而非项目自身的Manifest文件:
import android.Manifest
如果误导入了自定义包下的Manifest(比如com.yourapp.Manifest),就会找不到系统级的权限常量。
2. 适配Android 13+的权限规则
若项目targetSdkVersion设为33或更高,WRITE_EXTERNAL_STORAGE已被系统废弃,不再提供该常量。需根据业务场景替换为细分的媒体权限:
- 读写图片:
READ_MEDIA_IMAGES、WRITE_MEDIA_IMAGES - 读写视频:
READ_MEDIA_VIDEO、WRITE_MEDIA_VIDEO - 读写音频:
READ_MEDIA_AUDIO、WRITE_MEDIA_AUDIO
示例代码(以图片读写为例):
val permissions = arrayOf(Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.WRITE_MEDIA_IMAGES)
同时记得更新Manifest文件中的权限声明,替换为对应的新权限。
3. 同步Gradle并清理项目
IDE未及时同步依赖也可能导致权限常量无法识别:
- 点击Android Studio右上角的Sync Project with Gradle Files按钮
- 执行
Build > Clean Project,再执行Build > Rebuild Project
4. 临时兼容旧版本(不推荐长期使用)
如果必须保留WRITE_EXTERNAL_STORAGE用于兼容旧系统,可以将Module级build.gradle中的targetSdkVersion降至32,但建议优先适配新权限规则以符合系统规范。
内容的提问来源于stack exchange,提问作者Tayyab
相关产品推荐
相关产品推荐

