Gradle进程清单与新的Manifest Merger

Ser*_*rra 3 android manifest gradle

我一直在使用这段代码来删除我不想要的Manifest文件的权限,但是使用新的Merger,这是不可能的,我不知道用gradle来修改它.

applicationVariants.all { variant ->
        variant.processManifest.doLast {
            println("configuring AndroidManifest.xml removing READ_CALL_LOG");

            def manifestFile = new File("${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml")
            def content = manifestFile.getText()
            def updatedContent = content.replaceAll("<android:uses-permission android:name=\"android.permission.READ_CALL_LOG\" />", "")
            manifestFile.write(updatedContent)
        }
        variant.processResources.manifestFile = new File("${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml")

}
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西,但它不起作用

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
                def manifestOutFile = output.processManifest.manifestOutputFile
                def newFileContents = manifestOutFile.getText('UTF-8').replace("<android:uses-permission android:name=\"android.permission.READ_CALL_LOG\" />", "")
                manifestOutFile.write(newFileContents, 'UTF-8')
            }
       }
Run Code Online (Sandbox Code Playgroud)

我如何通过新的合并实现同样的目标?

Thansk提前.

小智 8

applicationVariants.all { variant ->
    variant.outputs.each { output ->
           output.processManifest.doLast{
            def manifestOutFile = output.processManifest.manifestOutputFile
            def newFileContents = manifestOutFile.getText('UTF-8').replace("<android:uses-permission android:name=\"android.permission.READ_CALL_LOG\" />", "")
            manifestOutFile.write(newFileContents, 'UTF-8')
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

这可以帮助您轻松.