gw0*_*gw0 9 android android-manifest android-gradle-plugin
我现在面临以下问题:
我开发了应用程序'A',它使用权限1,2,3并使用第三方库'B'作为依赖项(使用maven和gradle添加).
库"B"使用权限4和5.现在,在构建应用程序时,清单合并会将权限4和5添加到应用程序"A".
如何防止这种情况,并且在最终清单中只拥有权限1,2和3?
我的第一个猜测是使用其中一个明显的合并标记,如下所示:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Markers
gio*_*gio 14
您需要使用Selector
每个工具:节点或工具:attr声明可以通过tools:selector属性进行扩充,该属性是关于合并策略是否应该应用于当前较低优先级XML描述的上下文信息.例如,仅当为某个特定库而不是任何库移除时才会删除权限:
Run Code Online (Sandbox Code Playgroud)<permission android:name="permissionOne" tools:node="remove" tools:selector="com.example.lib1">
根据您的初始要求,它将是下一个
<!--suppress AndroidDomInspection -->
<uses-permission
tools:node="removeAll"/>
Run Code Online (Sandbox Code Playgroud)
但请记住,所有其他<uses-permissions/>将被删除.
如您所知,所有库都有一个清单文件并将合并在一起。您可以通过以下方式删除某个库中的权限:
tools:node="remove"
Run Code Online (Sandbox Code Playgroud)
例如删除位置权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3104 次 |
| 最近记录: |