You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已在Manifest中添加权限却仍显示「Missing permission」报错的问题求助

解决Manifest已添加权限仍提示「Missing permission」的问题

我之前也碰到过完全一样的坑!明明在Manifest里写了权限,各种清理重启都没用,最后才发现是几个容易被忽略的细节,给你列几个排查方向:

  • 检查权限声明的位置是否正确
    很多人会不小心把<uses-permission>标签放到<application>标签内部了,这是无效的!必须把所有权限声明放在Manifest文件的根节点下,和<application>标签同级,比如正确的结构应该是:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.yourapp">
    
        <!-- 权限必须放在这里,根节点下 -->
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            ...>
            <!-- 应用组件放在这里 -->
        </application>
    
    </manifest>
    
  • 针对位置权限的额外适配
    如果你的目标SDK是Android 10(API 29)及以上,当你需要在后台获取位置时,还需要添加ACCESS_BACKGROUND_LOCATION权限;如果是Android 12(API 31)及以上,精确位置权限的请求逻辑也有变化,Lint可能会因为这个触发警告。可以先检查你的targetSdkVersion,如果符合的话,补上对应的权限试试:

    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
    
  • 彻底清除Lint和构建缓存
    有时候Invalidate and Restart不够彻底,可以手动做这些操作:

    • 关闭Android Studio,删除项目根目录下的.gradle和.idea文件夹
    • 删除模块目录下的build文件夹
    • 重新打开项目,执行Clean Project再Rebuild Project
  • 检查Lint警告的具体指向
    仔细看警告的完整信息,它会告诉你缺少的是哪个权限、对应的代码位置是什么。比如是不是你调用了某个需要额外权限的方法(比如蓝牙、存储相关),但你只加了网络和位置权限?别只盯着你已经加的那几个权限,跟着警告提示找根源。

如果这些方法都没用,可以把警告的完整截图或者具体提示内容贴出来,我再帮你排查!

内容的提问来源于stack exchange,提问作者abusaeed2433

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 03:02:49