清单合并失败:使用的SDK最小版本为16,不能小于在库[Wear App sub-manifest]中声明的版本25。

17

我正在尝试将可穿戴模块添加到我的现有Android应用程序(最小sdk版本16)。如果我运行该应用程序(发布模式),我会收到以下错误:

Error: Execution failed for task ':app:processReleaseManifest'. Manifest merger failed: uses-sdk:minSdkVersion 16 cannot be smaller than version 25 declared in library [Wear App sub-manifest] c:\workspaces\sampleapp\android\app\build\generated\manifests\microapk\release\AndroidManifest.xml Suggestion: use tools:overrideLibrary="" to force usage

我不想增加minSdkVersion,那么如何在不更改应用程序的minSdkVersion的情况下解决此问题?

这是我的gradle文件:

手机应用

apply plugin: 'com.android.application'

android {
    signingConfigs {
        config {
            [...]
        }
    }

    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    repositories {
        jcenter()
        maven {
            url "https://maven.java.net/content/groups/public/"
        }
    }
    defaultConfig {
        applicationId "com.sample.app"
        minSdkVersion 16
        targetSdkVersion 25
        signingConfig signingConfigs.config
    }
    buildTypes {
        release {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:25.2.0'
    compile 'com.android.support:design:25.2.0'
    [...]

    compile 'com.google.android.gms:play-services-wearable:10.2.0'
    wearApp project(':sample-wear')
}

apply plugin: 'com.google.gms.google-services'

可穿戴应用

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    signingConfigs {
        config {
            [...]
        }
    }

    defaultConfig {
        applicationId "com.sample.app"
        minSdkVersion 23
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.config
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.google.android.support:wearable:2.0.0'
    compile 'com.google.android.gms:play-services-wearable:10.2.0'
    provided 'com.google.android.wearable:wearable:2.0.0'
}

注意:该错误仅在Gradle 2.3.0版本中出现。Gradle 2.2.3按预期工作...

在code.google.com上有类似的问题: https://code.google.com/p/android/issues/detail?id=232834


使用建议 Suggestion: use tools:overrideLibrary="" to force usage 如何? - azizbekian
6个回答

6

只需在gradle文件中将minSdkVersion更新为23即可。

android {
compileSdkVersion 30
defaultConfig {
    applicationId "com.oaics.customer"
    minSdkVersion 23
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"
}

1
不是一个解决方案,正如问题发起者所述。 - CaptainCrunch

2
在 Ionic 项目中,
preference name="android-minSdkVersion" value="19"

在 Config.xml(项目目录)文件中,将上述字段设置为所需版本。

1

我让它工作的唯一方法是:

  1. 卸载 Android 平台:ionic cordova platform rm android
  2. 更新 Ionic 项目根目录下的 config.xml 文件:从

    <preference name="android-minSdkVersion" value="16" />

    <preference name="android-minSdkVersion" value="19" />

我假设对于 OP 的情况,该值应该是 25 而不是 19(在我的情况下,错误是 19)。

  1. 再次将 Android 平台添加到项目中:ionic cordova platform add android

然后准备和构建 - 不应再返回相同的错误。


1

你可以在 build.gradle 文件中更改它,这对我有效。

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 33
}

您的回答可以通过添加更多支持信息来改进。请编辑以添加进一步的详细信息,例如引用或文档,以便其他人可以确认您的答案是否正确。您可以在帮助中心找到有关如何撰写良好答案的更多信息。 - Community

0

这似乎是Gradle的问题,因为您的'wearable'模块具有最低的23 sdk版本,而不是25。

请检查该模块的AndroidManifest.xml,因为它可能包含了uses-sdk:minSdkVersion为'25'的内容。

如果没有该值,您可以添加它来覆盖Gradle配置值。

希望能对您有所帮助。


0

我在使用IONIC和CORDOVA平台时遇到了同样的问题。我通过以下方式解决了这个问题:

检查两个文件:

[folder_your_app]\platforms\android\app\src\main\AndroidManifest.xml

例如:

\Users\[your_user]\.gradle\caches\transforms-1\files-1.1\tbxml-android.aar\f0d6a971caeb6d952bf6b9b62464f2ab\AndroidManifest.xml

请在第一个文件中检查以下行:
uses-sdk android:minSdkVersion="16" android:targetSdkVersion="26"

并与第二个文件的下一行进行比较:

android:minSdkVersion="16"

调整版本,尽情享受!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接