uses-sdk:minSdkVersion 15不能小于库中声明的版本16

时间:2016-05-18 07:36:55

标签: android build ionic-framework

我不理解此错误消息

  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

因为 AndroidManifest.xml 67 行如下所示:

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

15 来自哪里?

我使用 ionic 来构建我的应用。但我不认为这是问题所在。

22 个答案:

答案 0 :(得分:18)

也许我发现了问题。

我不想覆盖build.gradle,因为cordova动态创建此文件。但我搜索了cdvMinSdkVersion返回错误值的原因。原因是barcodescanner-plugin。插件gradle文件有这一行

ext.cdvMinSdkVersion = 15

AndroidManifest.xml 覆盖我的值。我删除并再次添加插件后,它的工作原理。 但我不知道为什么?也许有人可以解释不同gradle脚本的顺序。

答案 1 :(得分:8)

从版本2.14.0开始,minSdkVersion已增加到16.如果您希望将应用程序放在较低的minSdkVersion上并希望利用最新的SDK,请为API 16以下的版本禁用PayPal,添加{{1在manifest的xml声明中,并将以下代码段添加到AndroidManifest.xml:

xmlns:tools="http://schemas.android.com/tools

答案 2 :(得分:7)

在您应用的代码编辑器中,
Ctrl + Shift + F
搜索minSDKVersion
替换为所需的版本号

答案 3 :(得分:4)

如果是Hybrid / Ionic应用程序,可以通过更改config.xml中的minSdkVersion来修复此问题。

答案 4 :(得分:4)

对我来说,问题出在cordova-plugin-browsertab

您需要将my_project/plugins/cordova-plugin-browsertab/src/android/BrowserTab.gradle的第1行更改为

def minSdkVersion = 19

确保已将最低的SDK添加到config.xml

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

然后通过以下方式删除并添加cordova-android:

cordova platform remove android
cordova platform add android

答案 5 :(得分:2)

以下是了解事情的背景:

默认情况下,导入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"/>

然后可以合并以下清单而没有关于&lt; uses-sdk&gt;的错误。标记,合并后的清单会从应用清单中保留minSdkVersion =“2”。

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

答案 6 :(得分:2)

这解决了我的问题。 右键单击android studio中的应用文件夹,选择“打开模块设置” |或按F4。转到“风味”选项卡,并将“最小Sdk版本”更改为最新版本。 问题已解决。

答案 7 :(得分:1)

我也有同样的问题。我解决了它在 C:\Users\"Username"\.gradle\gradle.properties cdvMinSdkVersion 中更改为 19

org.gradle.daemon=false
org.gradle.jvmargs=-Xmx2048m
android.useAndroidX=false
android.enableJetifier=false
cdvMinSdkVersion=19

我是在 Android Studio 中导入项目时发现的。

答案 8 :(得分:1)

'audioplayers: ^0.17.1' 中将您的版本 'audioplayers: ^0.16.1' 降级到 pubspec.yaml 并发布获取 'audioplayers: ^0.16.1' 的依赖项。

答案 9 :(得分:1)

转到build.grade并在defaultConfig中有minSdkversion并将其更改为17并立即同步,这意味着我至少对我有用

答案 10 :(得分:1)

我将向您证明,更简单的方法是按照以下三个步骤进行操作:

1)转到Build.gradle(Module:app)

2)将minSDKVersion 15更改为minSDKVersion 16。或17

// 19(for projectfolder/platforms/android/CordovaLib/AndroidManifest.xml)

3)同步您的项目。

答案 11 :(得分:0)

在android/app/build.gradle中设置minSdkVersion:

android {
    defaultConfig {
        minSdkVersion 20
    }
}

答案 12 :(得分:0)

转到文件夹 /platforms/android/android.json 将 minsdk 版本更改为您想要的任何版本

{
       "xml": "<preference name=\"android-minSdkVersion\" value=\"22\" />",
       "count": 1
},

然后转到可能让你搞砸的插件/plugins/{yourplugin}/plugin.xml 将偏好值也更改为您想要的数字

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

然后检查您的 /platforms/android/build.gradle 文件并确认相同的值

project.ext {
      defaultBuildToolsVersion="29.0.2" //String
      defaultMinSdkVersion=22 //Integer - Minimum requirement is Android 5.1
      defaultTargetSdkVersion=29 //Integer - We ALWAYS target the latest by default
      defaultCompileSdkVersion=29 //Integer - We ALWAYS compile with the latest by default
}

答案 13 :(得分:0)

在我添加了用于查看PDF的“ jitPak”库之后,问题就开始出现了,这个问题的根本原因是build.gradel(模块级别)的第13行。只需将版本从15更改为16,即可解决问题。

props.put("bootstrap.servers", uri.getHost() + ":" + uri.getPort());
if (!groupidName.isBlank())
    props.put("group.id", groupidName);
props.put("enable.auto.commit", "false");
props.put("auto.offset.reset", groupidName.isBlank() ? "latest" : "earliest");
props.put("session.timeout.ms", "30000");
props.put("max.poll.records", "1");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
if (kafkaConnector.getConfig().getUserName() != null && kafkaConnector.getConfig().getPassword() != null)
{
    props.put("security.protocol","SASL_PLAINTEXT");
    props.put("sasl.mechanism","PLAIN");
    props.put("username",kafkaConnector.getConfig().getUserName());
    props.put("password",kafkaConnector.getConfig().getPassword());
}

答案 14 :(得分:0)

此错误消息表示,贝宝库的最低Android版本为16,而不是您自己的应用程序的版本。

如果您使用的第三方库之一的最低版本大于您的最低版本,则必须将minSdkVersion增加到它们。

答案 15 :(得分:0)

更简单的方法是:

-转到Build.gradle(Module:app)。

-将minSDKVersion 15更改为minSDKVersion 16。

-同步您的项目。

答案 16 :(得分:0)

我修复该问题的方法是转到_myBehaviorSubject = new BehaviorSubject(null); myBehaviorSubject$ = this._myBehaviorSubject.asObservable(); myObservable$ = this.http.get('api').pipe(tap(items => this._myBehaviorSubject.push(items))); 文件夹,并从我的VS代码编辑器为platforms\android做一个find-in-folder,然后将所有minSdkVersion替换为{{1}不论cordova是否动态生成。之后,一切对我来说都很好。

答案 17 :(得分:0)

试试看。 在build.gradle(模块:应用)中将minSdkVersion 15更改为minSdkVersion 16

答案 18 :(得分:0)

像魅力一样工作:

<?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's minSdk version to at least 15,
            or use tools:overrideLibrary="com.allyants.draggabletreeview" to force usage (may lead to runtime failures) -->

答案 19 :(得分:0)

我使用@Naga建议,它起作用了。
我更改的config.xml不在项目的根目录中,而是在 platforms/android/app/src/main/res/xml/config.xml

AndroidManifests.xml中的

minSdkVersion不会再次被覆盖

答案 20 :(得分:-1)

根据您的要求增加minSdkVersion,希望它将得到解决。

答案 21 :(得分:-1)

请按照以下三个步骤解决离子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" />更改为

`