uses-sdk:minSdkVersion 15 cannot be smaller than v

2020-02-27 07:26发布

I don't understand this error message

  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

Because line 67 of AndroidManifest.xml looks like:

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

Where does 15 come from?

I use ionic to build my app. But I don't think that this is the problem.

15条回答
欢心
2楼-- · 2020-02-27 07:58

Increase the minSdkVersion as your requirement, hope it will be solved.

查看更多
在下西门庆
3楼-- · 2020-02-27 07:59

Try this instead. Change minSdkVersion 15 to minSdkVersion 16 in build.gradle(module: app)

查看更多
Explosion°爆炸
4楼-- · 2020-02-27 08:00

Maybe I found the problem.

I don't want to overwride the build.gradle, because cordova create this file dynamically. But I searched why that cdvMinSdkVersion returns a wrong value. And the reason was this barcodescanner-plugin. The plugin gradle file has this line

ext.cdvMinSdkVersion = 15

which overwrite my value from AndroidManifest.xml. After I have remove and add the plugin again it works. But I don't know why? Maybe someone could explain the order of the different gradle scripts.

查看更多
爱情/是我丢掉的垃圾
5楼-- · 2020-02-27 08:01

Please Follow these three steps to solve this error in ionic 3

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

<uses-sdk android:minSdkVersion="16" /> change this to

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

2) projectfolder/platforms/android/gradle.properties

cdvMinSdkVersion=16 or X change to

cdvMinSdkVersion=19

3) projectfolder/config.xml

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

`

查看更多
ゆ 、 Hurt°
6楼-- · 2020-02-27 08:06

The problem started for me after I added "jitPak" library for viewing PDF, the root cause of the problem turn out to be line 13 in build.gradel (Module Level). Just change the version from 15 to 16, will resolve the issue.

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"
    }
查看更多
倾城 Initia
7楼-- · 2020-02-27 08:07

Here are some context to understand the things:

By default, when importing a library with a minSdkVersion value that's higher than the main manifest file, an error occurs and the library cannot be imported. To make the merger tool ignore this conflict and import the library while keeping your app's lower minSdkVersion value, add the overrideLibrary attribute to the tag. The attribute value can be one or more library package names (comma-separated), indicating the libraries that can override the main manifest's minSdkVersion.

For example, if your app's main manifest applies overrideLibrary like this:

<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"/>

Then the following manifest can be merged without an error regarding the <uses-sdk> tag, and the merged manifest keeps minSdkVersion="2" from the app manifest.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.lib1">
   <uses-sdk android:minSdkVersion="4" />
查看更多
登录 后发表回答