Flutter应用Debug模式下HTTP GET请求正常,Release打包后无法请求问题求助
Flutter应用Debug模式下HTTP GET请求正常,Release打包后无法请求问题求助
各位Flutter和Android开发的朋友们好!
我最近开发了一个应用,功能是发起HTTP请求下载一个.json文件,解析后生成对应的选项列表。在Flutter热重载调试时,不管是在Android 11还是Android 12的真机上,HTTP GET请求都能完美执行,列表也能正常生成,一切都没问题。
但是!当我用命令flutter build apk --release生成正式安装包,再安装到之前调试过的同一台设备上时,App直接卡在加载界面,完全无法正常工作。
我已经尝试了几个解决方案,但都没效果:
- 检查并配置了AndroidManifest.xml中的网络权限
- 更换HTTP请求包:原本用的是
http库,后来换成了dio库,问题依然存在
下面是请求相关的核心代码:
请求方法getSongs
void getSongs() async { try { final dio = Dio(); final response = await dio .get('https://joacoo.pythonanywhere.com/static/json/songs.json'); if (response.statusCode == 200) { List<dynamic> jsonResponse = response.data; for (int i = 0; i < jsonResponse.length; i++) { Song newSong = Song.fromjson(json: jsonResponse[i], id: i); songs.add(newSong); } for (int i = 0; i < songs.length; i++) { String id = songs[i].id.toString(); String name = songs[i].name; songsIDName.add('$id $name'); } songsLoaded = true; notifyListeners(); } else { throw Exception('Failed to load songs'); } } catch (e) { songsLoaded = true; } }
Song类的fromjson工厂方法
factory Song.fromjson({required dynamic json, required int id}) { String nameFromJson = removeASCIIChars(str: json['name'].toString()); String categoryFromJson = removeASCIIChars(str: json['category'].toString()); return Song( name: nameFromJson, category: categoryFromJson, bpm: json['bpm'], tab: json['tab'], id: id, ); }
另外还有个removeASCIIChars方法,用来处理西班牙语歌曲标题里的ñ字符,不过这个方法在Debug模式下也完全正常工作。
再强调一遍:所有逻辑在Debug模式下都没有问题,一打包成Release就失效了,有没有大佬知道这是哪里出问题了?
备注:内容来源于stack exchange,提问作者J04c0
相关产品推荐
相关产品推荐

