Google Play测试中Wear OS设备出现libflutter.so未找到错误
Wear OS设备Google Play测试中libflutter.so缺失导致的启动崩溃问题
在Wear OS设备的Google Play商店测试过程中,应用启动时触发如下崩溃:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alsat/com.alsat.MainActivity}: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
完整栈追踪:
Exception java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alsat/com.alsat.MainActivity}: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3449) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2066) at android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loop (Looper.java:223) at android.app.ActivityThread.main (ActivityThread.java:7651) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:947) Caused by java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found at io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete (FlutterLoader.java:345) at io.flutter.embedding.engine.FlutterEngine.<init> (FlutterEngine.java:327) at io.flutter.embedding.engine.FlutterEngine.<init> (FlutterEngine.java:207) at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.setupFlutterEngine (FlutterActivityAndFragmentDelegate.java:272) at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach (FlutterActivityAndFragmentDelegate.java:181) at io.flutter.embedding.android.FlutterActivity.onCreate (FlutterActivity.java:495) at android.app.Activity.performCreate (Activity.java:7998) at android.app.Activity.performCreate (Activity.java:7978) at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3422) Caused by java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found at java.util.concurrent.FutureTask.report (FutureTask.java:123) at java.util.concurrent.FutureTask.get (FutureTask.java:193) at io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete (FlutterLoader.java:239) Caused by java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found at java.lang.Runtime.loadLibrary0 (Runtime.java:1087) at java.lang.Runtime.loadLibrary0 (Runtime.java:1008) at java.lang.System.loadLibrary (System.java:1664) at io.flutter.embedding.engine.FlutterJNI.loadLibrary (FlutterJNI.java:141) at io.flutter.embedding.engine.loader.FlutterLoader$1.call (FlutterLoader.java:189) at io.flutter.embedding.engine.loader.FlutterLoader$1.call (FlutterLoader.java:182) at java.util.concurrent.FutureTask.run (FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at java.lang.Thread.run (Thread.java:923)
解决方法
- 配置目标ABI架构:Wear OS设备主流架构为armeabi-v7a和arm64-v8a,在app模块的
build.gradle中添加如下配置,确保打包时包含对应库文件:android { defaultConfig { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } } } - 升级Flutter版本:旧版Flutter对Wear OS支持存在兼容性问题,执行
flutter upgrade升级到最新稳定版(建议3.10及以上)。 - 检查App Bundle拆分配置:若上传的是App Bundle,需确保Google Play能正确拆分ABI。在
build.gradle中开启ABI拆分:android { bundle { abi { enableSplit = true } } } - 清理构建缓存:执行
flutter clean清除旧构建缓存,重新构建应用后再上传测试。 - 本地验证:先将构建好的安装包直接安装到目标Wear OS设备,确认应用能正常启动,排除分发环节的异常。
内容的提问来源于stack exchange,提问作者Vahit Behrouz
相关产品推荐
相关产品推荐

