Android Studio请求相机权限时出现Manifest.permission.CAMERA错误
解决Android Studio中Manifest.permission.CAMERA报错的问题
刚碰到这个问题的时候我也头疼过,别担心,咱们一步步排查解决:
1. 检查是否导入了正确的Manifest类
最常见的坑就是导入了自己项目里的Manifest类,而不是Android系统自带的。你需要确保代码顶部有这个导入:
import android.Manifest;
如果你的项目里有自定义的Manifest类(比如com.yourappname.Manifest),一定要把它去掉,或者直接用完整类名调用:android.Manifest.permission.CAMERA
2. 确认已在AndroidManifest.xml中声明相机权限
动态申请权限的前提是你已经在清单文件里声明了这个权限。打开AndroidManifest.xml,在<manifest>标签内添加:
<uses-permission android:name="android.permission.CAMERA" />
如果你的应用必须依赖相机硬件,还可以加上(可选配置):
<uses-feature android:name="android.hardware.camera" android:required="true" />
3. 检查REQUEST_CAMERA常量是否正确定义
requestPermissions方法的第三个参数是请求码,必须是一个有效的整数常量。确保你在Activity里提前定义了它:
private static final int REQUEST_CAMERA = 100; // 数值可以自定义,只要是正整数就行
如果这个常量未定义或者是可变变量,也会触发关联报错。
4. 验证SDK版本配置
动态权限是从Android 6.0(API 23)开始引入的,所以你需要确保build.gradle(Module级别)里的编译SDK版本至少是23:
android { compileSdk 33 // 或者更高版本,比如34 // ...其他配置 }
同时,targetSdkVersion也建议设置为23或以上,这样权限申请流程才能正常触发。
如果以上步骤都做完还是有问题,可以试试Clean Project然后Rebuild Project,有时候Android Studio的缓存会导致这种奇怪的报错。
内容的提问来源于stack exchange,提问作者user9722689
相关产品推荐
相关产品推荐

