繁体   English   中英

覆盖库使用的 maxSdkVersion

[英]Override maxSdkVersion used by library

这是场景。 我的应用程序 (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" ,因此我当前运行 nougat 的设备无法请求此特定权限。

目前我找到了一个解决方案来覆盖我的应用程序 (A) manifest.xml 中的这个值

<uses-permission
    tools:replace="android:maxSdkVersion"
    android:name="android.permission.READ_PHONE_STATE"
    android:maxSdkVersion="28"/>

但这需要我每次更新应用程序中的 sdk 版本时更新maxSdkVersion (A)。

所以我的问题是

  1. 有没有办法使用我的 manifest.xml 中的一些命名空间来忽略库(B)设置的 maxSdkVersion,比如 tools:ignore
  2. 在 build.gradle 中自动将 maxSdkVersion 设置为最新的 sdkVersion,无需手动更改

在您自己的AndroidManifest.xml上使用tools:remove属性:

<uses-permission
    android:name="android.permission.READ_PHONE_STATE"
    tools:remove="android:maxSdkVersion"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM