Android flatter应用程序删除java.lang.UnsatifiedLinkError(找不到libflatter.so)

Android flatter应用程序删除java.lang.UnsatifiedLinkError(找不到libflatter.so),android,flutter,Android,Flutter,我已经建立了一个应用程序写在颤振,它在我的设备上运行良好 但在客户端设备上,它在启动时崩溃(甚至在Centry启动之前) 当连接到ADB时,我们得到以下日志: AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.travel.exchange-1/base.apk"],nativeLibraryDirectories=

我已经建立了一个应用程序写在颤振,它在我的设备上运行良好

但在客户端设备上,它在启动时崩溃(甚至在Centry启动之前)

当连接到ADB时,我们得到以下日志:

 AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.travel.exchange-1/base.apk"],nativeLibraryDirectories=[/data/app/com.travel.exchange-1/lib/arm, /data/app/com.travel.exchange-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn't find "libflutter.so"

 at java.lang.Runtime.loadLibrary (Runtime.java:367)
  at java.lang.System.loadLibrary (System.java:1076)
  at io.flutter.view.FlutterMain.startInitialization (FlutterMain.java:172)
  at io.flutter.view.FlutterMain.startInitialization (FlutterMain.java:149)
  at io.flutter.app.FlutterApplication.onCreate (FlutterApplication.java:22)
  at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1037)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6496)
  at android.app.ActivityThread.access$1800 (ActivityThread.java:229)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1887)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:148)
  at android.app.ActivityThread.main (ActivityThread.java:7406)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
我专门使用arm64(如果我试图在arm(32)上运行,应用程序甚至会在我的设备上崩溃)


本文描述了解决方案。

TL,DR,

在应用程序的build.gradle中,应添加以下行:

android {
     ...
    defaultConfig {
       ....    
        ndk {
            abiFilters 'armeabi-v7a'
        }
    }

应使用
flatter Build apk

进行构建,这是因为flatter用于使apk与32位或64位兼容,而不是两者都兼容


但是,该问题最近已由颤振团队解决。升级/切换到颤振主通道(如果您不使用它).现在,一个命令
flatter build apk
将生成与32位和64位体系结构兼容的apk。要切换到主通道,请使用命令
flatter channel master
。和
flatter upgrade
升级flatter sdk。

以防万一,有人可能会发现这很有用,如果他们喜欢我的话在这条线上,他们两天几乎失去理智

背景:我升级到并尝试集成Braze的颤振插件,该插件依赖于firebase

最终奏效的是:我从app/build.gradle中删除了以下依赖项

实现“com.google.firebase:firebase核心:17.0.1”

实现“com.google.firebase:firebase消息:19.0.1”

并将以下依赖项添加到pubspec.yaml

firebase_核心:^0.4.0+8

firebase_消息:^5.1.2


我怀疑有什么东西导致它失败,不确定,但这对我解决这个问题起到了作用。如果你遇到类似的问题,检查你对Android的build.gradle和flatter的pubspec.yaml的依赖可能会有所帮助。

Android\app\build.g中的buildTypes下添加了以下代码拉德尔

buildTypes {
        release {
            ndk {
                abiFilters 'armeabi-v7a','arm64-v8a','x86_64'
            }
        }
    }

此配置仅在运行
flatter build apk
时起作用,在运行
flatter run
时不起作用。如果添加此配置,我将无法在Android Studio中运行我的应用程序。它显示“安装apk…”并冻结。此解决方案不起作用,因为它将强制生成官方文档中描述的仅32位版本:。根据Google Play的文档“从2019年8月1日开始,您在Google Play上发布的应用程序将需要支持64位体系结构。”。您可以在上阅读更多关于它的信息以获取解决方案阅读更多信息:这已经过时了。play store不再接受32位。哪个Flatter版本解决了问题?您可以参考GitHub问题吗?这篇文章已经发布6个多月了。我不记得版本号。我必须升级SDK 4-5次,并且在2019年6月后从未观察到此问题。我直到v1.12.13+修补程序.9出现问题,并希望确保这不是由于运行旧版本造成的。看起来此问题仍然存在,请参见>
buildTypes {
        release {
            ndk {
                abiFilters 'armeabi-v7a','arm64-v8a','x86_64'
            }
        }
    }