diff --git a/frontend/mobile-app/lib/core/services/account_service.dart b/frontend/mobile-app/lib/core/services/account_service.dart index 9cc09299..8fd2beb7 100644 --- a/frontend/mobile-app/lib/core/services/account_service.dart +++ b/frontend/mobile-app/lib/core/services/account_service.dart @@ -883,8 +883,18 @@ class AccountService { } final responseData = response.data as Map; - final newAvatarUrl = responseData['avatarUrl'] as String; + debugPrint('$_tag uploadAvatar() - responseData: $responseData'); + // API 返回格式: { success: true, data: { message, avatarUrl } } + final data = responseData['data'] as Map?; + debugPrint('$_tag uploadAvatar() - data: $data'); + if (data == null) { + throw const ApiException('上传头像失败: 响应数据格式错误'); + } + final newAvatarUrl = data['avatarUrl'] as String?; debugPrint('$_tag uploadAvatar() - 新头像URL: $newAvatarUrl'); + if (newAvatarUrl == null || newAvatarUrl.isEmpty) { + throw const ApiException('上传头像失败: 未返回头像URL'); + } // 更新本地存储(使用 avatarUrl 而不是 avatarSvg) await _secureStorage.write(key: StorageKeys.avatarUrl, value: newAvatarUrl);