You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Manifest合并显示隐含权限原因解析:Android Studio3.1升级后权限异常

解决Google Play提示隐含引入WRITE_EXTERNAL_STORAGE权限的问题

我之前升级Android Studio后也碰到过类似的第三方库偷偷引入额外权限的情况,刚好能给你几个实用的解决思路:

方法一:显式移除多余权限

直接在你的主AndroidManifest.xml里添加权限移除声明,覆盖掉第三方库带来的隐含权限:

<!-- 先确保manifest根节点引入tools命名空间 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="你的应用包名">

    <!-- 移除隐含引入的WRITE_EXTERNAL_STORAGE权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        tools:node="remove" />
</manifest>

方法二:升级Google Play服务依赖

这个问题根源是com.google.android.gms.license模块的targetSdkVersion过低,把项目里所有com.google.android.gms开头的依赖都升级到最新稳定版就能解决。比如在Module级别的build.gradle里更新:

dependencies {
    implementation 'com.google.android.gms:play-services-base:17.6.0'
    // 其他Google Play服务相关依赖也同步升级到对应最新版
}

升级后重新构建项目,再看Manifest合并报告,这个隐含权限应该就消失了。

方法三:调整应用的targetSdkVersion

如果你的应用本身不需要外部存储写入权限,把项目的targetSdkVersion设置为较高版本(比如33+),高版本的权限规则会更严格,能避免旧库低版本targetSdk带来的权限自动继承问题:

android {
    defaultConfig {
        targetSdkVersion 33
        // 其他配置保持不变
    }
}

每次修改后记得重新生成签名发布版,再核对Manifest合并报告,确认权限已经被正确处理。

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

火山引擎 最新活动