我有一个Android(Java)源代码,其中集成了Flutter模块。当我在 Android Studio 中运行 Android 应用程序时,出现以下错误。我知道解决方案非常简单。也许错误本身就暗示了解决方案。但是,我无法实现这些解决方案,因为我在 Flutter 源代码中使用的多个 flutter 包出现以下错误。如何在不更改 Android 应用程序中的 minSdkVersion 的情况下解决此问题?
Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library [:payu_checkoutpro_flutter]
~/pm_module/.android/plugins_build_output/payu_checkoutpro_flutter/intermediates/merged_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 19
Suggestion: use a compatible library with a minSdk of at most 19,
or increase this project's minSdk version to at least 21,
or use tools:overrideLibrary="com.payubiz.payu_checkoutpro_flutter" to force usage (may lead to runtime failures)
我尝试按照错误提示更改 minSdkVersion,但不幸的是,我收到了很多软件包的此错误。
还有其他与此问题类似的 SO 帖子,但他们也在谈论单个包。
在当前设置中运行良好,突然开始抛出此问题。 我什至运行了
git reset
和 flutter clean
、flutter pub get
和类似的命令。
如果您还没有启用 multidex 支持,您可以在 Android 项目中启用 multidex 支持。 Multidex 支持允许您的应用程序在较旧的 Android 版本上构建和运行,这些版本对单个 dex 文件中的方法数量有限制。要启用多重分包,请按照下列步骤操作: 在您的
build.gradle
文件(通常位于 android/app
目录中)中,在 android
块内添加以下行:
android {
defaultConfig {
...
multiDexEnabled true
}
}
此外,请确保在您的
dependencies
块中包含 multidex 依赖项:
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
最后,更新您的
AndroidManifest.xml
以包含 multidex 应用程序类:
<application
android:name="androidx.multidex.MultiDexApplication">
...
</application>