繁体   English   中英

flutter 应用程序未从发行版 apk 中启动

[英]flutter app not launching in from release apk

flutter 应用程序在 android 调试、ios 调试和 ios 版本中运行良好但随着 android 版本( flutter build apk )它只是不启动。

我试过的:

  1. 按照此处的建议,将 gradle 版本从4.1.3降低到3.6.2

  2. 使用no-shrink标志运行( flutter build apk --no-shrink )。

  3. android/app/build.gradle shrinkResourcesminifyEnabled设置为false

这是一个清楚地显示错误的视频

这是我的flutter doctor -v output:

[√] Flutter (Channel stable, 2.0.5, on Microsoft Windows [Version 10.0.19041.928], locale
    en-US)
    • Flutter version 2.0.5 at C:\Users\adnan\flutter
    • Framework revision adc687823a (3 days ago), 2021-04-16 09:40:20 -0700
    • Engine revision b09f014e96
    • Dart version 2.12.3
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\adnan\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.55.2)
    • VS Code at C:\Users\adnan\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.21.0

[√] Connected device (3 available)
    • sdk gphone x86 (mobile) • emulator-5554 • android-x86    • Android 11 (API 30)
      (emulator)
    • Chrome (web)            • chrome        • web-javascript • Google Chrome 89.0.4389.128
    • Edge (web)              • edge          • web-javascript • Microsoft Edge 89.0.774.57

• No issues found!

编辑:这是来自 android 工作室 Logcat 的错误日志:

2021-04-20 09:58:24.300 6866-6866/? E/FlutterLoader: Flutter initialization failed.
    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.g.c.c(Unknown Source:23)
        at io.flutter.embedding.engine.a.<init>(Unknown Source:202)
        at io.flutter.embedding.engine.a.<init>(Unknown Source:16)
        at io.flutter.embedding.android.f.B(Unknown Source:106)
        at io.flutter.embedding.android.f.k(Unknown Source:7)
        at io.flutter.embedding.android.e.onCreate(Unknown Source:13)
        at com.myExampleApp.MainActivity.onCreate(Unknown Source:0)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        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:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        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.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(Unknown Source:13)
        at io.flutter.embedding.engine.g.c$a.a(Unknown Source:14)
        at io.flutter.embedding.engine.g.c$a.call(Unknown Source:0)
        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)
2021-04-20 09:58:24.300 6866-6866/? D/AndroidRuntime: Shutting down VM
    
    
    --------- beginning of crash
2021-04-20 09:58:24.301 6866-6866/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.myExampleApp, PID: 6866
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myExampleApp/com.myExampleApp.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:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        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.g.c.c(Unknown Source:367)
        at io.flutter.embedding.engine.a.<init>(Unknown Source:202)
        at io.flutter.embedding.engine.a.<init>(Unknown Source:16)
        at io.flutter.embedding.android.f.B(Unknown Source:106)
        at io.flutter.embedding.android.f.k(Unknown Source:7)
        at io.flutter.embedding.android.e.onCreate(Unknown Source:13)
        at com.myExampleApp.MainActivity.onCreate(Unknown Source:0)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        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:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
     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.g.c.c(Unknown Source:23)
        at io.flutter.embedding.engine.a.<init>(Unknown Source:202) 
        at io.flutter.embedding.engine.a.<init>(Unknown Source:16) 
        at io.flutter.embedding.android.f.B(Unknown Source:106) 
        at io.flutter.embedding.android.f.k(Unknown Source:7) 
        at io.flutter.embedding.android.e.onCreate(Unknown Source:13) 
        at com.myExampleApp.MainActivity.onCreate(Unknown Source:0) 
        at android.app.Activity.performCreate(Activity.java:8000) 
        at android.app.Activity.performCreate(Activity.java:7984) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) 
        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:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        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.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(Unknown Source:13)
        at io.flutter.embedding.engine.g.c$a.a(Unknown Source:14)
        at io.flutter.embedding.engine.g.c$a.call(Unknown Source:0)
        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)
2021-04-20 09:58:24.308 519-5643/? W/ActivityTaskManager:   Force finishing activity com.myExampleApp/.MainActivity
2021-04-20 09:58:24.309 306-306/? W/EmuHWC2: validate: layer 37 CompositionType 1, fallback

(可能与重复)

它目前是一般的 flutter sdk 和 android 架构支持问题,等待永久修复....
但是这个abifilters解决方案为我解决了在模拟器蓝色堆栈上模拟 LG 手机的问题。在项目的build.gradle android 文件中的defaultConfig标记中添加ndk 代码

**

android {
    //...
    defaultConfig {
    ndk {
    // Filter for architectures supported by Flutter.
    abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
    }
    }
    }

**

不知道其他手机是否有缺点,但我会在我们推出时更新这个线程,看看我们的客户再次遇到相同问题的手机正在使用它

编辑,还将以下行添加到settings.gradle的末尾:要过滤更多的文件。此代码将在文件夹 x86_64、arm64-v8a 和 armeabi-v7a 上生成文件libflutter.so 对于设备 x86,然后模拟 arm 这是有问题的设备..

gradle.beforeProject({ project->
    if (project.hasProperty("target-platform") &&
            !project.getProperty("target-platform").split(",").contains("android-arm")) {
        project.setProperty("target-platform", "android-arm,android-arm64")
    }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM