Flutter アプリが java.lang.UnsatisfiedLinkError をドロップします (「libflutter.so」が見つかりません) 質問する

Flutter アプリが java.lang.UnsatisfiedLinkError をドロップします (「libflutter.so」が見つかりません) 質問する

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

ベストアンサー1

次のコードを追加しますビルドタイプandroid\app\build.gradle

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

アプリケーションをリリースモードでビルドする場合、Flutterアプリはarmeabi-v7a(ARM 32ビット)、arm64-v8a(ARM 64ビット)、x86-64(x86 64ビット)用にコンパイルできます。Flutterは現在x86 Androidのビルドをサポートしていません(問題 9253)。

ソース:参考:

おすすめ記事