如何使用工具:build.gradle文件中的overrideLibrary?

我正在使用需要Android 17或更高版本的leanback库。 然而,我的应用程序支持16的minSDK,所以我得到了一个来自gradle说build立错误

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 

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

minSdk在build.gradle而不是在AndroidManifest.xml中声明时,如何使用overrideLibrary

打开Android Studio – >打开清单文件

添加<uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>不要忘记在<application>之前包含xmlns:tools="http://schemas.android.com/tools"标签

在这里输入图像说明

在build.gradle中声明你的minSdk并不重要。 您必须在AndroidManifest.xml复制overrideLibrary ,如此处所述 。

 <uses-sdk tools:overrideLibrary="com.example.lib1, com.example.lib2"/> 

系统会自动忽略AndroidManifest.xml中声明的sdkVersion。

我希望这能解决你的问题。

由于库需要minSdkVersion 17那么你可以在build.gradle (Module:Application)文件中改变它:

 defaultConfig { minSdkVersion 17 targetSdkVersion 25 } 

之后build设项目不应该抛出任何构build错误。

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

脚步 :

  1. path:C:\ MyApp \ platforms \ android \ CordovaLib \ AndroidManifest.xml

  2. 值: <uses-sdk android:minSdkVersion="7"/>

  3. 在新的cmd提示符下运行命令:

    C:\ MyApp> phonegap build android –debug [phonegap]执行'cordova build android –debug'… [phonegap]完成'cordova build android –debug'

    C:\ MyApp的>

打开你的项目清单文件

1:在顶部添加xmlns:tools =“http://schemas.android.com/tools”;

2:添加 在这里输入图像说明 3:您应该根据您的代码更改软件包名称(“fr.data_jack.immocalc”)

 <manifest xmlns:tools="http://schemas.android.com/tools" / .... /> <uses-sdk tools:overrideLibrary="nl.innovalor.ocr, nl.innovalor.corelib" /> 

我正面临着不同的min sdk版本之间的冲突问题。 所以这个解决scheme为我工作。