Not able to find out whats wrong in my binary search , always return -1 as answer. Please help

public static int search(int [] arr, int item, int lo, int hi){
if(lo <=hi){
int mid = (lo+hi)/2;

    if(arr[mid]==item){
        return mid;
    }else if(item < arr[mid]){
        return search(arr, item, lo, mid-1);
    }else if(item > arr[mid]){
        return search(arr, item , mid+1, hi);
    }
    
    }
    return -1;
}

public static void binarySearch(){
    int n = scn.nextInt();
    int [] arr = new int [n];
    for(int i =0; i< arr[i];i++){
        arr[i]=scn.nextInt();
    }
    int item = scn.nextInt();

    System.out.println(search(arr,item,0,arr.length-1));
}

where is your main function ??

import java.util.ArrayList;

import java.util.Scanner;

import java.util.Collections;

class practice{

public static Scanner scn = new Scanner(System.in);

    public static void main(String [] args){

    // sieveOfErastothenes();

    // sortGame();

    // stringSort();

    binarySearch();

}

public static int search(int [] arr, int item, int lo, int hi){

    if(lo <=hi){

    int mid = (lo + hi)/2;

    if(arr[mid]==item){

        return mid;

    }else if(item < arr[mid]){

        return search(arr, item, lo, mid-1);

    }else{

        return search(arr, item , mid+1, hi);

    }

    

    }

    return -1;

}

public static void binarySearch(){

    int n = scn.nextInt();

    int [] arr = new int [n];

    for(int i =0; i< arr[i];i++){

        arr[i]=scn.nextInt();

    }

    int item = scn.nextInt();

    System.out.println(search(arr,item,0,arr.length-1));

}

}

for(int i =0; i< arr[i];i++) -->// for(int i=0; i<arr.length; i++){
loop from value i=0 to till i<a.length().

import java.util.*;
public class Main {
public static int search(int[] arr, int item, int lo, int hi) {
if (lo > hi) {
return -1;
}

	int mid = (lo + hi) / 2;

	if (arr[mid] == item) {
		return mid;
	} else if (item < arr[mid]) {
		return search(arr, item, lo, mid - 1);
	} else
		return search(arr, item, mid + 1, hi);

}

public static void main(String[] args) {
	Scanner scn = new Scanner(System.in);
	int n = scn.nextInt();
	int[] arr = new int[n];
	for (int i = 0; i < arr.length; i++) {
		arr[i] = scn.nextInt();
	}
	int item = scn.nextInt();

	System.out.println(search(arr, item, 0, arr.length - 1));
}

}

If your doubt is clear mark it resolved and rate