美文网首页
Flutter 构建apk遇到的坑

Flutter 构建apk遇到的坑

作者: LK110 | 来源:发表于2019-07-12 16:31 被阅读0次

    Flutter 集成jpush推送.

    按照jpush配置完成之后,打包apk ,安装到Android手机,直接闪退。主要原因是arm64-v8a
    arm64-v8a是可以向下兼容的,但前提是你的项目里面没有arm64-v8a的文件夹,如果你有两个文件夹armeabi和arm64-v8a,两个文件夹,armeabi里面有a.so 和 b.so,arm64-v8a里面只有a.so,那么arm64-v8a的手机在用到b的时候发现有arm64-v8a的文件夹,发现里面没有b.so,就报错了,所以这个时候删掉arm64-v8a文件夹,这个时候手机发现没有适配arm64-v8a,就会直接去找armeabi的so库,所以要么你别加arm64-v8a,要么armeabi里面有的so库,arm64-v8a里面也必须有

    1. jpush官方文档包含各个平台的cpu.
    ndk {
            /*选择要添加的对应 cpu 类型的 .so 库。
            abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
        }
    
    1. Flutter 官方文档已经给出了具体的说明:

    What are the supported target architectures?

    When building your application in release mode, Flutter apps can be compiled for armeabi-v7a and arm64-v8a.
    Flutter does not currently support building for x86 Android (See Issue 9253)

    翻译之后的说明就是:
    在发布模式下构建应用程序时,可以为armeabi-v7a(32位)和arm64-v8a(64位)编译Flutter应用程序。Flutter目前不支持构建x86 Android(参见问题9253

    所以在集成jpush推送的时候,这样配置就可以解决问题,至于 'mips', 'mips64',根据自己的需求来添加。

    ndk {
                //选择要添加的对应 cpu 类型的 .so 库。
                abiFilters 'armeabi', 'armeabi-v7a','arm64-v8a'
         }
    
    

    开发过程中又遇到新的问题。
    flutter版本更新到1.7之后,集成jpush,Android端,设置别名出错,主要原因是官方插件没有及时更新原因,最新的flutter sdk要求必须在UIThread设置。所以崩溃。目前官方暂未处理,解决方案可以参考第三方插件参与者的解决方案。

    # 极光推送
      jpush_flutter:
        git:
          url: https://github.com/CaiJingLong/jpush-flutter-plugin.git
          ref: 4d847f9b2150dc4fd1f8a7620d414d60f464fab7
    

    相关文章

      网友评论

          本文标题:Flutter 构建apk遇到的坑

          本文链接:https://www.haomeiwen.com/subject/nvgekctx.html