Ответ 1
Открыть Android Studio → Открыть файл манифеста
добавить
<uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>
не забудьте также включить xmlns:tools="http://schemas.android.com/tools"
, перед тегом <application>
Я использую библиотеки leanback, для которых требуется Android 17 или новее. Однако мое приложение поддерживает minSDK из 16, поэтому я получаю ошибку сборки от 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
к моему манифесту, но проблема в том, что я объявляю свой minSdk в моем gradle файле, а не в моем манифесте.
Как использовать overrideLibrary
, когда minSdk объявлен в build.gradle, а не в AndroidManifest.xml?
Открыть Android Studio → Открыть файл манифеста
добавить
<uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>
не забудьте также включить xmlns:tools="http://schemas.android.com/tools"
, перед тегом <application>
не имеет значения, что вы объявляете ваш minSdk в build.gradle. Вы должны скопировать overrideLibrary
в ваш AndroidManifest.xml
, как AndroidManifest.xml
здесь.
<manifest
... >
<uses-sdk tools:overrideLibrary="com.example.lib1, com.example.lib2"/>
...
</manifest>
Система автоматически игнорирует sdkVersion, объявленный в AndroidManifest.xml.
Я надеюсь, что это решит вашу проблему.
<manifest xmlns:tools="http://schemas.android.com/tools" ... >
<uses-sdk tools:overrideLibrary="nl.innovalor.ocr, nl.innovalor.corelib" />
Я столкнулся с проблемой конфликта между различными версиями min sdk. Так что это решение сработало для меня.
Поскольку для библиотеки требуется minSdkVersion 17
, вы можете изменить ее в файле build.gradle
(Module: Application):
defaultConfig {
minSdkVersion 17
targetSdkVersion 25
}
и после этого при создании проекта не следует создавать какие-либо ошибки сборки.
Я просто изменил minSdkVersion="7"
в C:\MyApp\platforms\android\CordovaLib\AndroidManifest.xml
и это сработало.
шаги:
C:\MyApp\platforms\android\CordovaLib\AndroidManifest.xml
<uses-sdk android:minSdkVersion="7"/>
Выполните команду в новой командной строке:
C:\MyApp>phonegap build android --debug [phonegap] executing 'cordova build android --debug'... [phonegap] completed 'cordova build android --debug'
только что изменился только android: minSdkVersion = "16" и он отлично работает C:\MyApp\platform\android\CordovaLib\AndroidManifest.xml
используйте этот код в manifest.xml
<uses-sdk
android:minSdkVersion="16"
android:maxSdkVersion="17"
tools:overrideLibrary="x"/>
В качестве решения для всех библиотек мы можем сопоставить их версию SDK, поэтому не может произойти непредвиденное событие
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
//It 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 уровня вашего приложения
откройте файл манифеста проекта
1: добавить xmlns: tools = "http://schemas.android.com/tools" сверху
2: добавить
3: вы должны изменить имя пакета ( "fr.data_jack.immocalc" ) в соответствии с вашим кодом