添加MutliDex后Flutter应用程序崩溃

nxowjjhe  于 2023-03-31  发布在  Flutter
关注(0)|答案(2)|浏览(132)

我创建了一个小应用程序,到目前为止在Android模拟器上运行良好(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添加到默认配置块。
现在应用程序构建成功,但在启动时崩溃,没有任何类型的消息...从上面恢复更改再次修复了它。
你知道我哪里做错了吗?

y0u0uwnf

y0u0uwnf1#

由于添加了Google移动的Ads SDK,您的应用可能会出现内存不足的情况,这需要启用multidex支持。以下是您可以尝试的一些操作:

  • 请确保您的应用中安装了最新版本的Google移动的Ads SDK。您可以在官方Google Mobile Ads SDK文档中查看最新版本。
  • 增加应用的内存限制。您可以通过将android:largeHeap=“true”添加到AndroidManifest.xml文件中的标记来实现。
  • 尝试通过将minifyEnabled true和shrinkResources true添加到您的app/build.gradle文件来启用ProGuard。这可以帮助减小应用的大小并防止潜在的内存问题。
  • 检查应用的日志以查看是否有任何错误消息或异常被抛出。您可以通过在调试模式下运行应用并使用Android Studio的logcat查看日志来执行此操作。
  • 尝试在物理设备而不是模拟器上运行应用,以查看问题是否仍然存在。

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

t2a7ltrp

t2a7ltrp2#

愚蠢的我忘记在AndroidManifest中添加应用程序ID。经过一番研究,我发现这是谷歌移动的广告的常见问题。如果不提供应用程序ID,应用程序只会在启动时崩溃。
添加此内容后,它似乎可以工作:
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="[YOUR_APPLICATION_ID]"/>

相关问题