Flutter应用程序在/lib/arm64上崩溃 - 找不到"libflutter.so"。

10

最近我在Play商店发布了我的应用程序,我收到了大量以下的崩溃报告。

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mynewsapp/com.mynewsapp.MainActivity}: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.mynewsapp-gPJd8MyNcgdyJYrEzcZOUw==/base.apk"],nativeLibraryDirectories=[/data/app/com.mynewsapp-gPJd8MyNcgdyJYrEzcZOUw==/lib/arm64, /system/lib64, /product/lib64]]] couldn't find "libflutter.so"

我们知道Flutter在aab上不支持x86,但是这是由于lib/arm64找不到"libflutter.so"。因此,我提取了我发布的aab文件,它只有这些文件夹:lib arm64-v8a、armeabi-v7a和x86_64。

enter image description here

有人能帮我解决这个问题吗?为什么没有arm64文件夹?那些用户是谁?

enter image description here


你好。你解决了这个问题吗? - Sos.
你使用的是哪个SDK版本(在pubspec.yaml文件中查看SDK版本)?我也遇到了很长时间的应用程序问题,但现在注意到我仍然在运行SDK的第2版。如下评论所述,这可能是在较新的版本(3.7)中修复的问题。我现在将尝试升级。 - Almund
这个有什么最新进展吗?我在一个谷歌测试设备上(Pixel 2 - 虚拟机,安卓9)还是遇到了这个问题。 - Ovidiu Uşvat
我和@OvidiuUşvat有同样的问题。 - undefined
2个回答

3

我遇到了同样的问题。

这个错误来自于Google Play自动化测试。你可以通过查看 "Testing", "Pre-Launch Report", "Details" (参见图片)来查看它。 Google Play Pre-launch report details

如果你点击"Show more"按钮并向下滚动,会显示一个Google Wear(虚拟)设备(x86)。我没有针对穿戴设备进行开发,所以这似乎是Google Play商店的一个故障,你可以忽略它(如果这是你的情况)。

Google wear


1
这个问题已经得到解决。我不确定是 Google Play 商店修复了问题还是最新的 Flutter SDK 3.7.9 修复了它。无论哪种情况,我的最新构建都在没有任何问题的情况下通过了 Google Play 测试。 - under
16
我有同样的问题,但这不是发生在一个穿戴设备上,而是在一个Pixel 2(虚拟设备)上。还没有找到解决办法:( - undefined
4
我有同样的问题,但这并不是发生在一个穿戴设备上,而是在一台Pixel 2(虚拟设备)上。还没有找到解决办法:( - novas1r1
1
我和@novas1r1有相同的问题。 - Ovidiu Uşvat
我和@novas1r1有同样的问题。 - undefined
显示剩余2条评论

1

生成已签名的APK或App Bundle,无需连接任何Android设备或模拟器

按照以下步骤操作:

  • 从Android Studio中删除所有设备/手机/模拟器的连接
  • 在android/app级别的build.gradle文件中添加以下代码:

defaultConfig { ndk { abiFilters "arm64-v8a", "armeabi-v7a", "x86", "x86_64" } }

  • gradle.properties中添加android.useDeprecatedNdk=true
  • 为发布版本添加自己的签名配置。
  • 然后使用Android Studio或者 flutter build apk --release 或者 flutter build appbundle --release 生成已签名的apk或app bundle。
  • 在发布中使用这个新生成的apk/app bundle。

1
对我来说,这个工作很适合。: abiFilters "arm64-v8a", "armeabi-v7a", "x86", "x86_64" - persec10000
android.useDeprecatedNdk=true自2017年起已被弃用,不再被gradle使用。 - DarkNeuron
如果Flutter不支持x86,为什么要将其添加到abiFilters中呢? - undefined
这并没有解释为什么会发生崩溃,或者为什么这些步骤(如果确实有的话)能够防止它发生。 - undefined
这对我来说不起作用。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接