当前位置: 首页 > 知识库问答 >
问题:

Flutter应用程序删除java.lang.未满足LinkError(找不到libflutter.so)

陶征
2023-03-14

我已经构建了一个基于Flutter的应用程序,它在我的设备上运行良好。

然而,在客户端设备上,它在启动时崩溃(甚至在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)上运行,即使在我的设备上应用程序也会崩溃。

flutter build apk --release --target-platform=android-arm64

共有3个答案

阎宾实
2023-03-14

以防万一,有人可能会发现这很有用,如果像我一样,他们在这个线程上跌跌撞撞,而几乎失去理智2天!

背景:我升级到AndroidX并试图集成Braze的flutter插件,该插件依赖于Firebase。

最终奏效的是:我从应用程序/构建中删除了以下依赖项。格拉德尔

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

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

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

firebase_核心:^0.4.0 8

firebase\u消息:^5.1.2

我怀疑里面有什么东西让它失败了,不确定,但这对我解决这个问题很有效。如果你遇到类似的问题,检查你对Androidbuild.gradle和颤振pubspec.yaml.的依赖可能会有所帮助

丁曦
2023-03-14

在应用级别build.gradle应添加以下行

    defaultConfig {

        ...

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

}
姜旭
2023-03-14

在android\app\build.gradle的build dTypes下添加以下代码

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

在发布模式下构建应用程序时,可以为armeabi-v7a(ARM 32位)、arm64-v8a(ARM 64位)和x86-64(x86 64位)编译Flutter应用程序。Flutter当前不支持为x86 Android构建(请参阅问题9253)。

资料来源:https://docs.flutter.dev/deployment/android

 类似资料:
  • 我在做一个增强现实应用程序。这里有Java Eclipse SDK。因此,我没有更改Eclipse SDK和Java中的任何内容。我没有为SDK设置任何路径,我只是下载并安装了cygwin,然后我为它设置了路径。我再次安装了vuforia.exe文件,并将Eclipse首选项中的path设置为vuforia,然后再次下载NDK。我只是扩展那些ndk和复制在sdk根文件夹,我设置路径到ndk。现在我

  • UnsatifiedDependencyException:创建名为'org.springframework.boot.autoConfigure.orm.jpa.HibernateJPAAutoConfiguration'的bean时出错:通过构造函数参数0表示的不满足的依赖关系;嵌套异常是org.springframework.beans.factory.beanCreationExcepti

  • 我已经做了以前的搜索试图找到一个答案,但我的尝试失败至今。我认为错误很简单,只是没有加载类。 我正在用Intellij运行MacOSX10。我将它与Junit、Spring和Maven&Junit一起使用。 我按照maven Dependencients找到了mvnrepository.com-sikuli-api1.2.0,所以我在想,如果将依赖项添加到pom,那么所有文件都应该在我的类路径中?

  • 我已经克隆了flatterrepo并安装了androidsdk命令行工具,在中进行了设置。然后,我通过将设置为使意识到的安装。通过

  • 我试图编写一个简单的Java程序,通过JNI调用C函数来打印“Hello World”。一切编译都没有错误,但当我运行程序时,我得到一个“UnsatisfiedLinkError:找不到依赖库”。 根据Dependency Walker和dumpbin的说法,唯一的依赖项是“kernel32.dll”,在C:\Windows\System32及其依赖项中,也在System32中。 使命感 返回时没

  • 我正在尝试弄清楚如何将我的本机库集成到android代码中。我创建了一个简单的C函数,它在设备上运行代码时运行良好。但是我目前的目标是让它在单元测试环境(jUnit)中工作,我面临着问题: 因此,在单元测试env不工作,我将其保存到系统中。load(“/full/path/to/lib.so”),但现在此行引发异常: java.lang.不满意的链接错误:app\build\中介\cmake\de