gpt4 book ai didi

java - Android Gradle list 合并 : Override 'uses-permission' attribute coming from a library

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:18 24 4
gpt4 key购买 nike

对于我使用最新的 Android Studio 开发的应用程序,我在它的 gradle 文件中使用了这个依赖项:

dependencies {
compile 'com.android.support:support-v4:21.0.+'
compile 'com.helpshift:android-aar:3.7.1'
}

com.helpshift:android-aar:3.7.1对于我在主应用程序中未使用的功能,库需要以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

如所述herehere我可以覆盖导入库的 activity XML 声明中的属性。

但我是否也可以覆盖 ma​​nifest XML 声明,如提到的 uses-permission

我已经在我的主 list 中尝试过类似的东西,但它没有用:

<permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="remove"
tools:selector="com.helpshift">
</permission>

同时更改 <permission>元素到 <uses-permission>没有帮助。 该应用仍请求访问 SC 卡的权限

我的主要 AndroidManifest.xml 现在看起来像这样:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
xmlns:tools="http://schemas.android.com/tools"
package="com.bmi.rechner" >

<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="remove"
tools:selector="com.helpshift">
</uses-permission>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.android.vending.BILLING" />

<application
...

更新:@CommonsWare 建议的答案有效。

这只是我的tools:selector="com.helpshift"这是不正确的。我将其排除在外是因为我确信我暂时不需要在任何其他库中获得该许可。

他还提交了一份 feature request改进 list 合并报告,这可能有助于在未来找到合适的选择器。

最佳答案

这将是一个 <uses-permission>你会 remove 的元素, 不是 <permission>元素。

请注意,如果您的应用不持有此权限,库可能会崩溃。

关于java - Android Gradle list 合并 : Override 'uses-permission' attribute coming from a library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com