簡體   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