問題記錄:Flutter 運行失敗 libflutter.so

問題:

問題記錄:Flutter Debug運行失敗 couldn’t find libflutter.so

AS編譯可以正常,編譯但是一運行就提示失敗:

2020-05-21 13:33:43.049 21224-21224/ FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "==/base.apk!/lib/armeabi-v7a, /system/lib]]] couldn’t find “libflutter.so”

但是如果是用AS的 Android項目來運行,確實可以打包成功運行的

解決:
舊的abi配置是:

  buildTypes {
          ndk {
                abiFilters 'armeabi-v7a'
            }
  }

修改爲:

  buildTypes {
        release {
            ndk {
                abiFilters 'armeabi-v7a'
            }
        }
        debug {
            minifyEnabled false
            ndk {
                // 設置支持的 SO 庫構架,注意這裏要根據你的實際情況來設置
                abiFilters 'armeabi-v7a', 'arm64-v8a'//, 'armeabi', 'x86', 'x86_64', 'mips', 'mips64'
            }
        }
    }

原因

libflutter.so 這個庫是Flutter的編譯自帶的,編譯的版本是 arm64-v8a。說明Flutter是隻支持64位手機的。 但是如果 設置 arm64-v8a ,那麼32位的手機就不能跑(雖然32位的手機佔比非常小 <2%)因此爲了讓32位的機器也能運行,那麼可以設置:abiFilters ‘armeabi-v7a’

參考

Flutter雜症 couldn’t find "libflutter.so

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章