我使用的是leanback库,它需要Android 17或更高版本。然而,我的应用程序支持16的minSDK,所以我得到一个构建错误从gradle说

Error:Execution failed for task ':Tasks:processPhoneDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library /Users/mike/Projects/android-for-dummies-v3/Tasks/build/intermediates/exploded-aar/com.android.support/leanback-v17/21.0.2/AndroidManifest.xml
    Suggestion: use tools:overrideLibrary="android.support.v17.leanback" to force usage

当我查看构建工具文档时,我看到了如何将overrideLibrary标记添加到我的清单中,但问题是我在我的gradle文件中而不是在我的清单中声明我的minSdk。

当minSdk在构建中声明时,我如何使用overrideLibrary。gradle而不是AndroidManifest.xml?


当前回答

作为所有库的解决方案,我们可以匹配他们的sdk版本,所以没有意外事件可能发生

subprojects { 
afterEvaluate {project -> 
    if (project.hasProperty("android")) { 
        android { 
            compileSdkVersion 28 
            buildToolsVersion '28.0.3'
            defaultConfig {
                //It's kinda tricking android studio but anyway it works
                minSdkVersion 17
            }
        } 
    } 
    if (project.hasProperty("dependencies")) {
        dependencies {
            implementation 'com.android.support:support-core-utils:28.0.0'
            implementation 'com.android.support:appcompat-v7:28.0.0'
            implementation 'com.google.android.gms:play-services-base:16.1.0'
        }
    }
} 
}

删除你的项目(gms)中不使用的库,并确保sdk版本与你的应用程序级别的gradle数据匹配

其他回答

我刚刚在C:\MyApp\platforms\android\CordovaLib\AndroidManifest.xml中更改了minSdkVersion="7",它工作了。

步骤:

路径:C: \ MyApp \ \ \ CordovaLib \ AndroidManifest.xml android平台 值:<uses-sdk android:minSdkVersion="7"/> 在新的cmd提示符中运行命令: C:\MyApp>phonegap build android -debug [phonegap]执行“cordova build android -debug”… [phonegap]完成“cordova build android -debug”

只改变了android:minSdkVersion="16",它的工作完美 C: \ MyApp \ \ \ CordovaLib \ AndroidManifest.xml android平台

作为所有库的解决方案,我们可以匹配他们的sdk版本,所以没有意外事件可能发生

subprojects { 
afterEvaluate {project -> 
    if (project.hasProperty("android")) { 
        android { 
            compileSdkVersion 28 
            buildToolsVersion '28.0.3'
            defaultConfig {
                //It's kinda tricking android studio but anyway it works
                minSdkVersion 17
            }
        } 
    } 
    if (project.hasProperty("dependencies")) {
        dependencies {
            implementation 'com.android.support:support-core-utils:28.0.0'
            implementation 'com.android.support:appcompat-v7:28.0.0'
            implementation 'com.google.android.gms:play-services-base:16.1.0'
        }
    }
} 
}

删除你的项目(gms)中不使用的库,并确保sdk版本与你的应用程序级别的gradle数据匹配

这对我很有用

<uses-sdk 
    android:minSdkVersion="16"
    android:maxSdkVersion="17"
    tools:overrideLibrary="pl.droidsonroids.gif" />
      


   

在manifest.xml中使用此代码

<uses-sdk
android:minSdkVersion="16"
android:maxSdkVersion="17"
tools:overrideLibrary="x"/>