2020-4-25 编译 flutter 录音im 安卓版遇到的问题及解决方法

  • 编译时出现:  package android.support.v4.app does not exist 错误 , cannot find symbol ContextCompat

是因为android studio 新版本 , in my case is :    3.5.2

把 support.v4 这个package 集合到 Androidx ,

用到了

解决方法是: 不再引用 fluttertoast 插件

或者也可以用旧版小于android 23 的sdk ,但不知如何换用旧版

  • 编译错误 :  android firebase Cannot fit requested classes in a single dex file

是因为当引用 firebase 时, 因为google firebase 所定义的method太多 ,所以需要app 支持 multidex

 

解决方法是: 在app级  build.gradle 文件dependencies 加上 :

 

defaultConfig  加上 :

完整文件如下:

 

解决方法来自  :  https://stackoverflow.com/questions/48249633/errorcannot-fit-requested-classes-in-a-single-dex-file-try-supplying-a-main-dex

 

  • 如何请求 microphone  和 读写权限

manifes 文件加:

 

 

flutter 如何调用 firebase 的服务: storage , cloud message 等

  •  添加到 Android :

https://firebase.google.com/docs/android/setup

 

  • medium 网站的讲解

https://medium.com/@SebastianEngel/easy-push-notifications-with-flutter-and-firebase-cloud-messaging-d96084f5954f

 

  • 如何发通知

To send a message to a specific device, you need to know that device’s registration token (注册令牌)

 

  • 如何接通知:

具体的实现 : https://medium.com/@jun.chenying/flutter-tutorial-part3-push-notification-with-firebase-cloud-messaging-fcm-2fbdd84d3a5e

 

  • 接到通知后, 如何转到特定页

先阅读flutter route 的 文档  : https://flutter.dev/docs/cookbook/navigation

https://stackoverflow.com/questions/48403786/how-to-open-particular-screen-on-clicking-on-push-notification-for-flutter  

这个似乎不对

 


另一种方法:

https://stackoverflow.com/questions/53408967/open-certain-page-on-push-notification-using-firebase-cloud-messaging-on-flutter

 

 

上面的解决方法中 ,这个消息怎么发 :

 

    • in case  no context , How to navigator ?

https://medium.com/flutter-community/navigate-without-a-buildcontext-in-flutter-code-guide-2d344ee0e4d6

 

 

flutter 如何与 firebase 连接, MAC

2020-4-2

 

1 : 按照官方文档 :https://firebase.google.com/docs/flutter/setup

除了。Cloud Messaging , 其他都可以用 iOS simulator 测试

 

2:  在 firebase 新建项目 , 用 flutter—-》 iOS 的 bundle id 和 此项目绑定在一起

 

3 : 完成后下载。GoogleService-Info.plist  文件 ,  然后用 Xcode 打开。/flutter/iOS/runner.xcworkspace , 把 plist 文件添加到。runner/runner 下面。

4:   安装。cocoapods。 这是一个ruby程序, 用来下载google firebase 需要的插件

 

这2个命令用时很长 , in my case , 3小时以上

 

5  用 vscode 打开flutter 程序。 在   pubspec.yaml 文件增加新的package

 

保存后等待 flutter 自动完成 flutter pub get 的工作。 get完成后 会自动生成 podfile文件。

 

6。此时即可执行。flutter run

 

7 如果安装  grpc 时间过长 , 可以

I resolved it by deleting all the cache related to gRPC at /Users/<user>/Library/Caches/CocoaPods/Pods/Release/ and .../Specs/Release/, and running pod install again.