ionorg / ion-sdk-flutter

ion flutter sdk
MIT License
117 stars 73 forks source link

用release模式编译apk,运行出现的问题 #65

Closed wasgxu closed 2 years ago

wasgxu commented 2 years ago

Your environment.

What did you do?

example 示例代码,如果以debug方式运行,一切正常 但是用release方式打包apk运行,会停滞在 await _rtc.join(_room, _uid, JoinConfig()); 这句一直等待,最后一条收到的状态是: D/FlutterWebRTCPlugin: onIceGatheringChange GATHERING 一直都没有COMPLETE消息,但是如果取消await关键字来调用 _rtc.join(_room, _uid, JoinConfig()); 不等待的话,就可以正常通讯,也可以收到COMPLETE消息 我还试着clone了[ion-app-flutter]项目来以release方式打包,出现了一样的问题,也是在rtc.join时候卡住,但是debug模式却正常

What did you expect?

不知道是我环境问题,还是什么问题?我需要如何解决这个问题

wasgxu commented 2 years ago

结合服务端日志,好像根本就没有发送请求到服务端

wasgxu commented 2 years ago

发现是客户端连接服务端时候发生的错误,error信息是: gRPC Error (code: 14, codeName: UNAVAILABLE, message: Error connecting: SocketException: Connection failed (OS Error: Permission denied, errno = 13), address = xxx, port = 5551, details: null, rawResponse: null, trailers: {}) 但是debug模式没有问题,而且telnet xxx 5551是通的,服务端也没异常,这次链接在siganl服务端没产生任何日志,我更换一个服务器测试一下

wasgxu commented 2 years ago

OK,找到问题了,因为project_tools.sh脚本并没有给安卓AndroidManifest.xml文件加上 <uses-permission android:name="android.permission.INTERNET"/> 权限,有可能是用了新版本的flutter插件生成的模板文件和作者使用版本时并不匹配的问题,添加上就可以了,不知道为何debug模式不需要此权限,大家遇到相同的问题可以尝试这样解决,