标签: Flutter

  • Flutter中的IoC

    因为长期做后端开发,Spring提供的IoC功能确实用的很多。到了Flutter中各种依赖项目的管理也很麻烦,也影响单元测试的编写。

    所以在Flutter还是希望延续平时的习惯,使用IoC去控制依赖等关系。但是Flutter中有一些特殊的情况,比如Flutter禁用了dart:mirrors,反射的使用上有一些问题。对比了几个框架,最开始考虑的是Google下面的inject.dart,但是文档这块比较缺,还有就是注解+代码生成的方式强大,但是不是很喜欢,也用不了这么强的功能。由于名字的原因也看了下ioc库(https://pub.dev/packages/ioc),对于API的语法不是很喜欢。最后选择使用GetIt。

    使用上比较简单,引用依赖

    dependencies:
      get_it: ^3.1.0

    代码中专门配置一个方法用于管理所有依赖配置

    class IocConfiguration {
      configDependencies(
          {AnalysisService analysisService}) {
        var loader = GetIt.I;
    
        loader
            .registerLazySingleton<LoggingService((() =SimpleLoggingService()));
    
        if (analysisService != null) {
          loader.registerLazySingleton<AnalysisService((() =analysisService));
        } else {
          loader.registerLazySingleton<AnalysisService(
              (() 
  • Flutter打包后闪退问题

    最近在搞Flutter,在模拟器调试一切正常,但是flutter build apk以后真机闪退,看了下日志,报错如下:

    E/flutter ( 5319): [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.NoClassDefFoundError: g.a.b.o3
    E/flutter ( 5319): 	at g.a.b.r.v(Unknown Source:0)
    E/flutter ( 5319): 	at com.huangyunkun.kiwi.a.a(Unknown Source:102)
    E/flutter ( 5319): 	at com.huangyunkun.kiwi.MainActivity$a.a(Unknown Source:153)
    E/flutter ( 5319): 	at c.a.c.a.j$a.a(Unknown Source:17)
    E/flutter ( 5319): 	at io.flutter.embedding.engine.e.b.a(Unknown Source:57)
    E/flutter