首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Gradle Manifest合并:重写来自库的“使用-权限”属性

Android Gradle Manifest合并:重写来自库的“使用-权限”属性
EN

Stack Overflow用户
提问于 2015-01-15 11:50:18
回答 1查看 5.8K关注 0票数 11

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

代码语言:javascript
复制
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" />

正如描述的那样,这里这里可以覆盖导入库的活动声明中的属性。

但是,我是否也可以覆盖清单 XML声明,比如上面提到的uses-permission

我已经在我的主舱单上试过这样的东西了,但是没有用:

代码语言:javascript
复制
<permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    tools:node="remove"
    tools:selector="com.helpshift">
</permission>

另外,将<permission>元素更改为<uses-permission>也没有帮助。应用程序仍然要求获得访问SC卡的许可。

我的主AndroidManifest.xml现在看起来如下:

代码语言:javascript
复制
<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"不对。我忽略了它,因为我确信我在一段时间内不需要任何其他库的许可。

他还提交了一份特征请求,以改进清单合并报告,这可能有助于在未来找到合适的选择者。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-15 12:12:38

它将是一个<uses-permission>元素,而不是remove元素,而不是<permission>元素。

请注意,如果应用程序没有此权限,库可能会崩溃。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27962789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档