android - 覆盖库使用的 maxSdkVersion
问题描述
这是场景。我的应用程序 (A) 正在使用库 (B)。
我的应用 (A) 正在使用权限 READ_PHONE_STATE,它在 manifest.xml 中声明为
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
虽然库 (B) 也使用相同的权限 READ_PHONE_STATE,但 maxSdkVersion 设置为 22。
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
android:maxSdkVersion="22"/>
所以现在的问题是当应用程序被构建并且在最终的_merged_manifest_中我设置了maxSdkVersion="22",因此我当前运行牛轧糖的设备无法请求这个特定的权限。
目前我在我的应用程序 (A) manifest.xml 中找到了覆盖此值的解决方案
<uses-permission
tools:replace="android:maxSdkVersion"
android:name="android.permission.READ_PHONE_STATE"
android:maxSdkVersion="28"/>
但这需要我每次在我的应用程序 (A) 中更新 sdk 版本时更新maxSdkVersion 。
所以我的问题是
- 有没有办法使用我 manifest.xml 中的一些命名空间来忽略库 (B) 设置的 maxSdkVersion,例如 tools:ignore
- 在 build.gradle 中自动将 maxSdkVersion 设置为最新的 sdkVersion,无需手动更改
解决方案
自行使用tools:remove
属性AndroidManifest.xml
:
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
tools:remove="android:maxSdkVersion"/>
推荐阅读
- generics - kotlin,可以调用 null.also{}
- react-native - 单击通知反应本机 onesignal 时,错误未定义不起作用
- sql-server - 堆表上的集群和非集群与非集群
- javascript - Tablesorter - filter-select 和 filter_saveFilters
- c# - 使用 C# 在后端使用 SOAP Web 服务
- ipmi - 错误:无法建立 IPMI v2 / RMCP+ 会话
- asp.net-mvc - 编辑后,ASP.NET MVC Razor 页面在另一个 Razor 页面中引发异常,直到下一次构建
- json - Spark sql 的 from_json 返回空值
- asp.net-mvc - 如何在 ASP.NET CORE 项目中添加用户自定义控件(Net 2.0 中开发的.dll)?
- python - 无法在 Heroku 中安装 Django 包