【问题标题】:Android Manifest: Can't force minSDK anymore. "should not be declared in the android manifest file"Android 清单:不能再强制使用 minSDK。 “不应在 android 清单文件中声明”
【发布时间】:2020-06-04 03:54:43
【问题描述】:

有一点构建问题。

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

解决办法

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

不再同步并显示

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

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

不过,这是一种不健康的情况:

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

有什么办法解决吗? overrideLibrary 可以以某种方式驻留在build.gradle 中吗?

谢谢

【问题讨论】:

  • 我认为您正在导入旧项目,对吗?
  • 不,我的应用是在 Gradle 中从头开始构建的。我想导入一个 aar,但那个 aar 迫使我停止支持 21,22,我宁愿不这样做 :-(
  • 你在 gradle 中添加了 minSdkVersion 21 吗?
  • 当然。这就是冲突的原因。你知道,Manifest 合并试图决定在最终清单中放入哪个版本。根模块 min SDK 小于 lib 的 SDK => 您请求应用程序支持您的 SDK 不支持的版本。如果它设置最大值,它“不服从”您的 minSDK 请求。如果它强制最小值 - 您的应用程序可能会在运行时中断,您甚至都不知道。这是冲突!顺便说一句,相反的方向是有效的,因为这些库会自动支持高于其最小值的 API 级别。

标签: android build build.gradle android-manifest android-min-sdk


【解决方案1】:

我今天也遇到了这个问题,据我所知,它已作为 Android Gradle 插件 版本4.0.0 的一部分引入(我仍在寻找参考),而起初看起来令人沮丧,我认为这是正确的做法,因为它实际上避免了一些潜在的运行时崩溃。 (例如,当消费者调用库的 API 时,该 API 依赖于已在较新的 SDK 版本中引入的其他 API,但我们还是强制它变旧)

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

【讨论】:

    【解决方案2】:

    我刚做了这个,它奏效了。在应用程序级 build.gradle 文件中,只需确保在 defaultConfig 部分中指定“minSdkVersion #”,其中前面提到的 # 符号是您所针对的 SDK 编号。示例:

    android {
    compileSdkVersion 30
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.ranchhand1"
        minSdkVersion 23
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    

    }

    【讨论】:

      猜你喜欢
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      相关资源
      最近更新 更多