【Gradle笔记】全局去除指定权限的两种方式

485 阅读1分钟

一、基于gradle

在app的build文件的android模块里添加以下代码


 android.applicationVariants.all { variant ->
    variant.outputs.all { output ->
        output.processResources.doFirst { pm ->
            String manifestPath = output.processResources.manifestFile
            def manifestContent = file(manifestPath).getText()
            manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.GET_ACCOUNTS" />', '')
            def serialize = groovy.xml.XmlUtil.serialize(new XmlParser().parseText(manifestContent))
            file(manifestPath).write(serialize, "UTF-8")
        }
    }
}

二、基于google提供的参数

tools:node="remove"精髓在这里

<!--以下是不想要引入的权限,这样即使第三方包里有这个权限也不会引入 -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="remove" />
试试这个