因此,今天我们发布了一个应用程序,不幸的是,我们没有注意到添加了一个新的许可,即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上库的源代码之后,我实际上可以看到它的
targetSdkVersion
和minSdkVersion
设置正确,因此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/