因此,今天我们发布了一个应用程序,不幸的是,我们没有注意到添加了一个新的许可,即android.permission.READ_PHONE_STATE
一些用户指出,应用程序中添加了一个新的权限类别
设备ID和呼叫信息
读取电话状态和身份
经过一些调查,我发现这是与上述的许可,但我没有在我的任何清单。在对我的项目进行搜索后,我发现它包含在manifest-merger-release-report.txt中。

android:uses-permission#android.permission.READ_PHONE_STATE
IMPLIED from AndroidManifest.xml:6:1 reason: com.getpebble.android.kit has a targetSdkVersion < 4

我不希望向用户请求此权限,特别是仅因为外部库没有设置其targetsdkversion。
我使用下面的代码将其作为模块的依赖项。
compile 'com.getpebble:pebblekit:2.6.0@aar'

我的问题
如何在不访问库的targetSdkVersion文件的情况下重写库的AndroidManifest.xml
更新
在查看github上库的源代码之后,我实际上可以看到它的targetSdkVersionminSdkVersion设置正确,因此manifest-merger-release-report.txt中的提示不正确。

最佳答案

要覆盖来自库的“uses permission”属性,可以使用Selector
选择器
每个tools:node或tools:attr声明可以由
工具:选择器属性,它是关于
不是合并策略应该应用于当前较低的
优先级XML描述。例如,在删除
只有当一个特定的库而不是任何
图书馆:

<permission
      android:name="permissionOne"
      tools:node="remove"
      tools:selector="com.example.lib1">

关于android - 在Android Studio中覆盖Gradle远程依赖项的targetSdkVersion,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29824758/

10-11 04:01