Android清单:无法再强制minSDK。 “不应在android清单文件中声明”

问题描述 投票:0回答:1

有一些构建问题。

有一个需要minSDK:23的库,而我仍要支持21。

解决方案

    <uses-sdk
    android:minSdkVersion="21"
    tools:overrideLibrary="a.rogue.library" />

不再sync并显示

minSdk版本不应在android清单文件中声明。您可以将版本从清单移动到build.gradle文件中的defaultConfig。 删除minSdkVersion和同步项目 受影响的模块:approot

奇怪的观察:同步失败,但是构建成功。此外,同步after构建也成功。

但是,这是不健康的情况:

  • 如果我将overrideLibrary行添加到清单中-它将不会同步。
  • 如果我从清单中删除overrideLibrary行-当然会建立,因为存在minSDK冲突。

有什么办法解决这个问题?是否可以将OverrideLibrary驻留在build.gradle中?

谢谢

android build build.gradle android-manifest android-min-sdk
1个回答
1
投票

我今天也碰到了这一点,据我所见,它是Android Gradle Plugin 4.0.0版本的一部分(我仍在寻找参考),尽管它看起来令人沮丧首先,我认为这是正确的做法,因为它实际上避免了一些潜在的运行时崩溃。 (例如,当消费者调用库的API时,该API依赖于较新的SDK版本中引入的某些其他API,但无论如何我们都已强制使其更旧)

如果您负担得起,只需回到以前的稳定版本3.6.3,现在就可以了,但是库开发人员选择minimumSdkVersion是有原因的。也许可以与他们联系,以阐明其背后的理由并寻求建议。祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.