android - 从 AndroidManifest.xml 中删除重复权限
问题描述
包含这些AndroidManifest.xml
(以及更多)权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
WRITE_EXTERNAL_STORAGE
包含两次。所以我删除了一个并重新排序:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
录音机(https://github.com/3llomi/RecordView)通常会请求存储访问权限和麦克风访问权限。但是在更改之后它不再请求存储访问,因此记录视图不起作用。
对于每个清单更改,我都会从设备上卸载应用程序以重置权限。删除重复行怎么可能导致这种情况?
解决方案
合并后的视图AndroidManifest.xml
显示另一个库也声明了此权限maxSdkVersion="18"
:
该应用程序在 API>18 上运行,因此我假设它没有请求许可。删除maxSdkVersion
使存储权限再次出现并且记录器视图工作:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:remove="android:maxSdkVersion" />
我的猜测是,因为WRITE_EXTERNAL_STORAGE
在 中包含了两次AndroidManifest.xml
,所以清单合并过程将maxSdkVersion
唯一添加到其中之一。另一个WRITE_EXTERNAL_STORAGE
没有maxSdkVersion
,因此该应用程序也在 API>18 上请求许可。
推荐阅读
- javascript - 滚动文本以更改滚动时的固定背景图像
- ios - 如何调用呼叫目录扩展的`beginRequest`?
- javascript - javascript方法中的第二个参数是什么?
- fonts - 占位符内的图标和文本
- vue.js - 如何为应用程序中的所有组件设置全局属性
- ruby-on-rails - Rails 片段缓存是否会对存储 SVG 或复杂 html 的性能有所改进?
- shopify - 使用 javascript 检查产品在 Shopify 中是否可用
- sql - 有没有更优雅的方式来编写这个 Oracle SQL 查询?
- google-cloud-platform - GCP 中的 HTTP 端点
- internet-explorer-11 - fls.doubleclick.net 仅在 IE11 中下载缓慢