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

Sim*_*ach 19 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
Run Code Online (Sandbox Code Playgroud)

由于线67AndroidManifest.xml中的样子:

<uses-sdk android:minSdkVersion="18" android:targetSdkVersion="22" />
Run Code Online (Sandbox Code Playgroud)

15来自哪里?

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

小智 19

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


Sim*_*ach 18

也许我发现了问题.

我不想覆盖build.gradle,因为cordova动态创建此文件.但我搜索了为什么cdvMinSdkVersion返回错误的值.原因是这个条形码扫描器插件.插件gradle文件有这一行

ext.cdvMinSdkVersion = 15
Run Code Online (Sandbox Code Playgroud)

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


小智 9

更简单的方法是:

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

- 将 minSDKVersion 15 更改为 minSDKVersion 16。

- 同步您的项目。


小智 8

从版本2.14.0开始,minSdkVersion已增加到16.如果您希望将应用程序放在较低的minSdkVersion上并想要利用最新的SDK,请为API 16以下的版本禁用PayPal,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"/>
Run Code Online (Sandbox Code Playgroud)


小智 8

我的问题出在cordova-plugin-browsertab中

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

def minSdkVersion = 19
Run Code Online (Sandbox Code Playgroud)

确保您已添加了最低的SDK config.xml

<preference name="android-minSdkVersion" value="19" />
Run Code Online (Sandbox Code Playgroud)

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

cordova platform remove android
cordova platform add android
Run Code Online (Sandbox Code Playgroud)


0xA*_*iHn 7

这里有一些上下文来理解这些事情:

默认情况下,导入 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"/>
Run Code Online (Sandbox Code Playgroud)

然后可以合并以下清单而不会出现关于 <uses-sdk> 标记的错误,并且合并的清单将 minSdkVersion="2" 与应用程序清单保持一致。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.lib1">
   <uses-sdk android:minSdkVersion="4" />
Run Code Online (Sandbox Code Playgroud)


Nag*_*aga 5

对于混合/离子应用程序,可以通过更改 config.xml 中的 minSdkVersion 来解决此类问题,这就是我所做的。


Bil*_*tes 5

像魅力一样工作:

<?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"/>
Run Code Online (Sandbox Code Playgroud)

从这个错误消息:

 <!-- 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) -->
Run Code Online (Sandbox Code Playgroud)