Ionic Cordova 7.1.4 Android 构建失败

Posted

技术标签:

【中文标题】Ionic Cordova 7.1.4 Android 构建失败【英文标题】:Ionic Cordova 7.1.4 Android Build Failing 【发布时间】:2019-06-01 11:48:42 【问题描述】:

我刚刚创建了一个简单的 ionic cordova 项目,添加了一些插件。当我跑步时 离子科尔多瓦构建android

我收到以下构建错误:

FAILURE:构建失败并出现异常。

出了什么问题: 任务 ':app:processDebugManifest' 执行失败。

清单合并失败:uses-sdk:minSdkVersion 16 不能小于库 [:CordovaLib] C:\Users\Ralph Marvin\Desktop\Marvix\Apps\Ionic\Chapel\platforms\android\CordovaLib\ 中声明的版本 19 build\intermediates\manifests\full\debug\AndroidManifest.xml,因为该库可能正在使用 16 中不可用的 API 建议:使用 minSdk 最多为 16 的兼容库, 或将此项目的 minSdk 版本增加到至少 19, 或者使用 tools:overrideLibrary="org.apache.cordova" 强制使用(可能会导致运行时失败)

尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

通过https://help.gradle.org获得更多帮助

在 32 秒内构建失败 cmd:命令失败,退出代码 1 错误输出: C:\Users\Ralph Marvin\Desktop\Marvix\Apps\Ionic\Chapel\platforms\android\app\src\main\AndroidManifest.xml:36:5-74 错误: uses-sdk:minSdkVersion 16 不能小于库 [:CordovaLib] C:\Users\Ralph Marvin\Desktop\Marvix\Apps\Ionic\Chapel\platforms\android\CordovaLib\build\intermediates\manifests\full 中声明的版本 19 \debug\AndroidManifest.xml 作为库可能正在使用 16 中不可用的 API 建议:使用 minSdk 最多为 16 的兼容库, 或将此项目的 minSdk 版本增加到至少 19, 或者使用 tools:overrideLibrary="org.apache.cordova" 强制使用(可能会导致运行时失败)

FAILURE:构建失败并出现异常。

出了什么问题: 任务 ':app:processDebugManifest' 执行失败。

清单合并失败:uses-sdk:minSdkVersion 16 不能小于库 [:CordovaLib] C:\Users\Ralph Marvin\Desktop\Marvix\Apps\Ionic\Chapel\platforms\android\CordovaLib\ 中声明的版本 19 build\intermediates\manifests\full\debug\AndroidManifest.xml,因为该库可能正在使用 16 中不可用的 API 建议:使用 minSdk 最多为 16 的兼容库, 或将此项目的 minSdk 版本增加到至少 19, 或者使用 tools:overrideLibrary="org.apache.cordova" 强制使用(可能会导致运行时失败)

尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

通过https://help.gradle.org获得更多帮助

我的 config.xml 中有 ff:

    <preference name="android-minSdkVersion" value="19" />
    <plugin name="cordova-plugin-whitelist" spec="1.3.3" />
    <plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
    <plugin name="cordova-plugin-ionic-webview" spec="^2.0.0" />
    <plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
    <plugin name="cordova-plugin-app-update" spec="2.0.2" />
    <plugin name="cordova-plugin-background-mode" spec="0.7.2" />
    <plugin name="cordova-plugin-badge" spec="0.8.8" />
    <plugin name="cordova-plugin-browsertab" spec="0.2.0" />
    <plugin name="cordova-plugin-camera" spec="4.0.3" />
    <plugin name="cordova-plugin-crop" spec="0.4.0" />
    <plugin name="cordova-plugin-file" spec="6.0.1" />
    <plugin name="cordova-plugin-filechooser" spec="1.2.0" />
    <plugin name="cordova-plugin-filepath" spec="1.4.2" />
    <plugin name="cordova-plugin-file-transfer" spec="1.7.1" />
    <plugin name="cordova-plugin-headercolor" spec="1.0.0" />
    <plugin name="cordova-plugin-inappbrowser" spec="3.0.0" />
    <plugin name="cordova-plugin-local-notification" spec="0.9.0-beta.2" />
    <plugin name="cordova-plugin-media" spec="5.0.2" />
    <plugin name="cordova-plugin-media-capture" spec="3.0.2" />
    <plugin name="cordova-plugin-network-information" spec="2.0.1" />
    <plugin name="cordova-plugin-music-controls" spec="2.2.0" />
    <plugin name="cordova-plugin-x-socialsharing" spec="5.4.3">
        <variable name="ANDROID_SUPPORT_V4_VERSION" value="24.1.1+" />
    </plugin>
    <plugin name="cordova-sqlite-storage" spec="2.6.0" />
    <plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
    <plugin name="cordova-plugin-device" spec="^2.0.2" />
    <engine name="android" spec="7.1.4" />

我的 build.gradle 中也有这个

project.configurations.all 
    resolutionStrategy.eachDependency  details ->
        if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex') ) 
            details.useVersion "25.0.0"
        
    

请帮我解决这个问题,已经两天了,我已经完成了所有我能做的谷歌搜索。

【问题讨论】:

不是一个真正的答案,只是一个建议,我认为你的一个插件声明了 minSdkVersion 16,它与正在使用的 sdk 不兼容。通常,当我遇到构建错误时,我要做的第一件事是确定是哪个插件导致了问题,为此您可以在另一个目录中签出您的项目,删除所有内容(android 平台和插件),重新添加平台和插件一一检查是否构建成功。但在此之前,您可以搜索是否在您的插件之一中找到“uses-sdk:minSdkVersion”。 【参考方案1】:

好像sdk版本不兼容。

您必须将您的 config.xml 从这个 &lt;preference name="android-minSdkVersion" value="16" /&gt; 更新为 &lt;preference name="android-minSdkVersion" value="19" /&gt;

然后删除您的平台并重新添加

cordova platform remove android cordova platform add android

【讨论】:

【参考方案2】:

我也在努力解决这个问题,我发现@Sergio Rinaudo 的评论是最后的手段。从那时起,我删除了所有插件(从文件夹以及 config.xml 和 package.json 中),删除了平台并再次添加,然后开始添加插件。我的罪魁祸首(可能是你的,因为你有插件)是:

<plugin name="cordova-plugin-browsertab" spec="0.2.0" />

然后,我找到了this,然后可以在 plugins/cordova-plugin-browsertab/src/android/BrowserTab.gradle 下编辑版本。在此之后,我肯定会:

移除平台:

cordova platform rm android

使用此版本再次添加:

cordova platform add android@7.1.4

不是最佳解决方案,而是解决方法

【讨论】:

以上是关于Ionic Cordova 7.1.4 Android 构建失败的主要内容,如果未能解决你的问题,请参考以下文章

安装 facebook-connect 插件后 Ionic 构建失败

非原生App开发的基本步骤(以安卓端为例)

ionic 和cordova的区别是啥

Cordova笔记三:ionic+angular+cordova技术栈

如何将 Ionic Cordova 3 迁移到 Ionic Cordova 5?

ionic cordova build 成功,ionic cordova build --prod 报错