【发布时间】:2019-09-06 13:52:49
【问题描述】:
我已经尝试了 2 天来让我的 Cordova 应用程序为 Android 构建。每次我在 Android Studio 中打开我的项目时,我都会在运行任务阶段的 gradle 同步期间得到以下信息:
ERROR: Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version 19 declared in library [__tested_artifact__::CordovaLib]/Users/userName/Downloads/MyApp(1.2.5)/platforms/android/CordovaLib/build/intermediates/library_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 1
Suggestion: use a compatible library with a minSdk of at most 1, or increase this project's minSdk version to at least 19, or use tools:overrideLibrary="org.apache.cordova" to force usage (may lead to runtime failures)
我查看了许多解决方案,但似乎没有一个可以解决我的问题。我已经在我构建的项目的清单和cordova.android node_modules 文件夹中调整了设置:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
我在 config.xml 中添加了各种值:
<preference name="android-minSdkVersion" value="19" />
<preference name="android-targetSdkVersion" value="28"/>
以及指示 Cordova 构建特定版本:
cordova platform add android@7.0.0
我仍然收到同样的错误,尽管数值(即 19 和 1,即)即使数字改变也不会改变。
此外,我创建了一个新的空白项目并以相同的结果构建它。相同的项目在我的旧机器上构建良好,但 Play 商店表示它已经过时并且存在安全风险。
还有一点可能会有所帮助:在 Cordova 构建时,我在此过程中看到以下内容:
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=undefined (recommended setting)
ANDROID_HOME=/Users/userName/Library/Android/sdk (DEPRECATED)
【问题讨论】:
-
可能是使用 minSDKVersion 1 的旧插件。我会先重新评估插件。
-
我删除了所有插件,删除了平台,再次添加它,但同样的事情仍在发生。如果有帮助,它似乎发生在 gradle 同步“运行任务”步骤中。
-
你在
/platforms/android/build.gradle看到了什么minSDKVersion? -
min 是 19,target 和 compile 是 28。
-
很难盲目地判断问题出在哪里。我会尝试删除 android 平台,删除 node_modules 文件夹,然后运行 npm install 并重新创建平台。
标签: javascript android cordova