flutter加入已有android项目,解决在现有Android项目中集成Flutter遇到的问题

如何添加Flutter到现有Android项目

Flutter官方有详细的文档, 参考文档便可。java

集成过程当中遇到的神坑

主Module名称必定要为"app"

若是主Module名称不是"app", 执行Flutter#createView后,会出现native层的崩溃。而且会出现错误信息VM snapshot must be valid, 崩溃信息以下:android

#1 main

SIGABRT

解析原始

1 #00 pc 0001a52c /system/lib/libc.so (abort+63) [armeabi-v7a]

2 #01 pc 0053ea03 /data/app/com.xunlei.downloadprovider-hhbn6UtrgbvSTxvfZ3bDQQ==/lib/arm/libflutter.so [armeabi-v7a]

3 #02 pc 00536ba3 /data/app/com.xunlei.downloadprovider-hhbn6UtrgbvSTxvfZ3bDQQ==/lib/arm/libflutter.so [armeabi-v7a]

4 #03 pc 00092f75 /data/app/com.xunlei.downloadprovider-hhbn6UtrgbvSTxvfZ3bDQQ==/oat/arm/base.odex (oatexec+73589) [armeabi]

5 java:

6 io.flutter.view.FlutterNativeView.attach(FlutterNativeView.java:153)

7 io.flutter.view.FlutterNativeView.(FlutterNativeView.java:38)

8 io.flutter.view.FlutterNativeView.(FlutterNativeView.java:32)

9 io.flutter.facade.Flutter.createView(Flutter.java:73)

10 com.xunlei.downloadprovider.frame.MainTabActivity.onKeyDown(MainTabActivity.java:840)

11 android.view.KeyEvent.dispatch(KeyEvent.java:2758)

12 android.app.Activity.dispatchKeyEvent(Activity.java:3459)

13 com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:418)

14 android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:5233)

15 android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5105)

16 android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4623)

17 android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4676)

18 android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4642)

19 android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4769)

20 android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4650)

21 android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4826)

22 android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4623)

23 android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4676)

24 android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4642)

25 android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4650)

26 android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4623)

27 android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4676)

28 android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4642)

29 android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4802)

30 android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4963)

31 android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2597)

32 android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2158)

33 android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2149)

34 android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2572)

35 android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)

36 android.os.MessageQueue.nativePollOnce(Native Method)

37 android.os.MessageQueue.next(MessageQueue.java:379)

38 android.os.Looper.loop(Looper.java:144)

39 android.app.ActivityThread.main(ActivityThread.java:7383)

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

41 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)

42 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)

不能使用gradle的productFlavor属性

项目中若是使用了productFlavor属性进行差别化打包,会出现native层的崩溃。而且会出现错误信息VM snapshot must be valid.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值