添加 MutliDex 后 Flutter App 崩溃

问题描述 投票:0回答:2

我创建了一个小应用程序,到目前为止它在安卓模拟器上运行良好(Pixel XL - API 33)。

我想尝试谷歌广告并将

google_mobile_ads: ^1.2.0
添加到 pubspec.yaml 文件中。这导致构建错误并告诉我 minSDK 需要至少为 19 而不是 16。 我进入我的 flutter SDK 文件夹并更改了此文件中设置的 minSdkVersion:
flutter\packages\flutter_tools\gradle\flutter.gradle
尝试再次构建该应用程序会产生一个新的构建错误,告诉我需要启用 MultiDex。 所以我进入
project/android/app/build.gradle
并将
multiDexEnabled true
添加到默认配置块。

现在应用程序构建成功,但在启动时崩溃,没有任何消息...... 恢复上面的更改再次修复它。

知道我做错了什么吗?

android flutter admob android-multidex android-min-sdk
2个回答
0
投票

您的应用可能由于添加了 Google Mobile Ads SDK 而导致内存不足,这需要启用 multidex 支持。这里有一些你可以尝试的事情:

  • 确保您的应用程序中安装了最新版本的 Google 移动广告 SDK。您可以在官方 Google 移动广告 SDK 文档中查看最新版本。

  • 增加应用程序的内存限制。你可以通过添加 android:largeHeap="true" 到你的 AndroidManifest.xml 文件中的标签来做到这一点。

  • 尝试通过将 minifyEnabled true 和 shrinkResources true 添加到您的 app/build.gradle 文件来启用 ProGuard。这有助于减小应用程序的大小并防止潜在的内存问题。

  • 检查您的应用程序日志,看看是否有任何错误消息或异常被抛出。您可以通过在调试模式下运行应用程序并使用 Android Studio 的 logcat 查看日志来执行此操作。

  • 尝试在物理设备而不是模拟器上运行您的应用程序,看看问题是否仍然存在。

希望这些解决方案之一能帮助您识别和解决应用程序的问题。


0
投票

我忘记在 AndroidManifest 中添加应用程序 ID。 经过一番研究,我发现这是谷歌移动广告的一个常见问题。如果未提供应用程序 ID,应用程序将在启动时崩溃。

添加后它似乎起作用了:

<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="[YOUR_APPLICATION_ID]"/>
© www.soinside.com 2019 - 2024. All rights reserved.