Uses-sdk: minSdkVersion 15 не может быть меньше версии 16, объявленной в библиотеке

Я не понимаю это сообщение об ошибке

  C:\Program Files (x86)\Jenkins\workspace\__temp-mobile-prev\platforms\android\AndroidManifest.xml:67:5 Error:
        uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in library C:\Program Files (x86)\Jenkins\workspace\__temp-mobile-prev\platforms\android\build\intermediates\exploded-aar\com.paypal.sdk\paypal-android-sdk\2.14.2\AndroidManifest.xml
        Suggestion: use tools:overrideLibrary="com.paypal.android.sdk.payments" to force usage

Поскольку строка 67 AndroidManifest.xml выглядит так:

<uses-sdk android:minSdkVersion="18" android:targetSdkVersion="22" />

Откуда взялось 15?

Я использую ionic для создания своего приложения. Но я не думаю, что это проблема.

Ответ 1

Возможно, я нашел проблему.

Я не хочу переписывать build.gradle, потому что cordova создает этот файл динамически. Но я искал, почему cdvMinSdkVersion возвращает неправильное значение. И причиной этого был barcodescanner-plugin. Файл плагина gradle имеет эту строку

ext.cdvMinSdkVersion = 15

которые перезаписывают мое значение из AndroidManifest.xml. После того, как я удалю и добавлю плагин снова, он работает. Но я не знаю почему? Возможно, кто-то может объяснить порядок различных сценариев gradle.

Ответ 2

Начиная с версии 2.14.0, minSdkVersion была увеличена до 16. Если вы предпочитаете использовать свое приложение в нижней строке minSdkVersion и хотите использовать последний SDK, отключите PayPal для версий ниже API 16, добавьте xmlns:tools="http://schemas.android.com/tools внутри декларации манифеста xml и добавьте следующий фрагмент к вашему AndroidManifest.xml:

<uses-sdk android:minSdkVersion="INSERT_YOUR_DESIRED_minSdkVersion_HERE" tools:overrideLibrary="com.paypal.android.sdk.payments"/>

Ответ 3

Проблема для меня была в cordova-plugin-browsertab.

Вам нужно изменить строку 1 из my_project/plugins/cordova-plugin-browsertab/src/android/BrowserTab.gradle на

def minSdkVersion = 19

Убедитесь, что к вашему config.xml добавлен минимальный SDK

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

Затем удалите и добавьте Cordova-Android с помощью:

cordova platform remove android
cordova platform add android

Ответ 4

В случае приложения Hybrid/Ionic такая проблема может быть исправлена путем изменения minSdkVersion в config.xml, что я и сделал.

Ответ 5

Вот какой контекст для понимания вещей:

По умолчанию при импорте библиотеки с значением minSdkVersion, превышающим основной файл манифеста, возникает ошибка, и библиотека не может быть импортирована. Чтобы инструмент слияния проигнорировал этот конфликт и импортировал библиотеку, а ваше приложение уменьшило значение minSdkVersion, добавьте в тег атрибут overrideLibrary. Значение атрибута может быть одним или несколькими именами библиотечных пакетов (разделенные запятыми), указывающими библиотеки, которые могут переопределять основной манифест minSdkVersion.

Например, если ваш основной манифест приложения применяет overrideLibrary следующим образом:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.app"
          xmlns:tools="http://schemas.android.com/tools">
  <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="2"
            tools:overrideLibrary="com.example.lib1, com.example.lib2"/>

Затем следующий манифест может быть объединен без ошибки в отношении тега < uses-sdk > , и объединенный манифест сохраняет minSdkVersion = "2" из манифеста приложения.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.lib1">
   <uses-sdk android:minSdkVersion="4" />

Ответ 6

Самый простой способ сделать это:

-Go для Build.gradle (Модуль: приложение).

-Change minSDKВерсия 15 до minSDKВерсия 16.

-Sync ваш проект.

Ответ 7

Это решило мою проблему. Щелкните правой кнопкой мыши папку приложения в Android Studio, выберите "Открыть настройки модуля" | или просто нажмите F4. Перейдите на вкладку Flavors и измените версию Min Sdk на последнюю. Задача решена.

Ответ 8

Я использую предложение @Naga, и оно работает.
Изменяемый config.xml находится не в корне проекта, а в platforms/android/app/src/main/res/xml/config.xml

и minSdkVersion в AndroidManifests.xml больше не перезаписываются

Ответ 9

работать как шарм

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.aspireone.myapplication"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-sdk android:targetSdkVersion="28" android:minSdkVersion="14"
            tools:overrideLibrary="com.allyants.draggabletreeview"/>

из этого сообщения об ошибке:

 <!-- Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 15 declared in library [com.github.jakebonk:DraggableTreeView:1.0.1] C:\Users\ASPIREone\.gradle\caches\transforms-1\files-1.1\DraggableTreeView-1.0.1.aar\45f4095d2e68f3e9a1fbc4b73c7f9c33\AndroidManifest.xml as the library might be using APIs not available in 14
        Suggestion: use a compatible library with a minSdk of at most 14,
            or increase this project minSdk version to at least 15,
            or use tools:overrideLibrary="com.allyants.draggabletreeview" to force usage (may lead to runtime failures) -->

Ответ 10

Попробуйте это вместо этого. Измените minSdkVersion 15 на minSdkVersion 16 в build.gradle (модуль: приложение)

Ответ 11

Я исправил это, minSdkVersion find-in-folder minSdkVersion platforms\android и minSdkVersion find-in-folder из моего редактора кода VS для minSdkVersion и заменив все minSdkVersion=16 на minSdkVersion=19 независимо от того, сгенерировал ли это кордова динамически или нет. После этого у меня все работало нормально.

Ответ 12

Это сообщение об ошибке означает, что минимальная версия Android для библиотеки PayPal - 16, а не версия вашего собственного приложения.

Если одна из сторонних библиотек, которую вы используете, имеет минимальную версию, превышающую вашу версию, вам нужно увеличить minSdkVersion до них.

Ответ 13

Увеличьте minSdkVersion как ваше требование, надеюсь, оно будет решено.

Ответ 14

Проблема началась для меня после того, как я добавил библиотеку "jitPak" для просмотра PDF, основной причиной проблемы оказалась строка 13 в build.gradel (уровень модуля). Просто измените версию с 15 на 16, это решит проблему.

android {       // line 7 of build.gradle (module App)
    compileSdkVersion 28
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.web_app"
        minSdkVersion 15    // change this to 16
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

Ответ 15

Пожалуйста, выполните следующие три шага, чтобы решить эту ошибку в ионном 3

1) projectfolder/platforms/android/CordovaLib/AndroidManifest.xml

<uses-sdk android:minSdkVersion="16"/> измените это на

<uses-sdk android:minSdkVersion="19"/>

2) projectfolder/platforms/android/gradle.properties

cdvMinSdkVersion=16 or X изменить на

cdvMinSdkVersion=19

3) projectfolder/config.xml

<preference name="android-minSdkVersion" value="16"/> изменить на

'