我在写其他插件的时候,一直提示这个错误

来源:15-5 Flutter Plugin开发指南-Android端实现-1【打通Flutter与Android的任通二脉】

幕布斯8438532

2019-05-17

输入正文

E/AndroidRuntime: FATAL EXCEPTION: main

    Process: ltd.huaku.flutter_xrk, PID: 19144

    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/android.test.mock.jar", zip file "/system/framework/android.test.runner.jar", zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/ltd.huaku.flutter_xrk-WqPVqguEOAVUwNTuEZgcpw==/base.apk"],nativeLibraryDirectories=[/data/app/ltd.huaku.flutter_xrk-WqPVqguEOAVUwNTuEZgcpw==/lib/arm64, /data/app/ltd.huaku.flutter_xrk-WqPVqguEOAVUwNTuEZgcpw==/base.apk!/lib/arm64-v8a, /system/lib64]]] couldn't find "libflutter.so"

        at java.lang.Runtime.loadLibrary0(Runtime.java:1012)

        at java.lang.System.loadLibrary(System.java:1669)

        at io.flutter.view.FlutterMain.startInitialization(FlutterMain.java:156)

        at io.flutter.view.FlutterMain.startInitialization(FlutterMain.java:133)

        at io.flutter.app.FlutterApplication.onCreate(FlutterApplication.java:22)

        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1165)

        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6039)

        at android.app.ActivityThread.access$1300(ActivityThread.java:207)

        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1748)

        at android.os.Handler.dispatchMessage(Handler.java:106)

        at android.os.Looper.loop(Looper.java:193)

        at android.app.ActivityThread.main(ActivityThread.java:6863)

        at java.lang.reflect.Method.invoke(Native Method)

        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)

        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

架构包已经导入去了

       ndk {
           abiFilters "armeabi-v7a","arm64-v8a","x86_64","x86" //只打包flutter所支持的架构,flutter没有armeabi架构的so,加x86的原因是为了能够兼容模拟器
//            abiFilters "armeabi-v7a" //release 时只打"armeabi-v7包
       }


packagingOptions {
       // 确保app与plugin都依赖的libflutter.so merge时不冲突@https://github.com/card-io/card.io-Android-SDK/issues/186#issuecomment-427552552
       pickFirst 'lib/x86_64/libflutter.so'
       pickFirst 'lib/x86/libflutter.so'
       pickFirst 'lib/arm64-v8a/libflutter.so'
   }
}


这些配置都是按照老师的插件开发指南


我在 gradle.properties 中也加入了 android.useDeprecatedNdk=true

写回答

1回答

CrazyCodeBoy

2019-05-18

问题出在so架构配置出了问题,如果真机运行只需要添加armeabi-v7架构的包就可以了:

ndk {
         
    abiFilters "armeabi-v7a" //真机运行"armeabi-v7包
       }


0
0

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3274 问题

查看课程