public int evaluate() {
   if (root == null) {
        return -100000;
    }

    return evaluateHelper(root); (error)

}

private int evaluateHelper(MyBinaryTreeNode rt) {

    if (rt.left == null) {

        return Integer.parseInt(rt.data.toString()); (error)

    }

    switch (rt.data.toString()) {

        case "+":

            return evaluateHelper(rt.left) + evaluateHelper(rt.right);

        case "-":

            return evaluateHelper(rt.left) - evaluateHelper(rt.right);

        case "/":

            return evaluateHelper(rt.left) / evaluateHelper(rt.right);

        case "*":

            return evaluateHelper(rt.left) * evaluateHelper(rt.right);

        case "%":

            return evaluateHelper(rt.left) % evaluateHelper(rt.right);

        default:

            return -100000;

    }

}

Is there a question that needs asking?

commented: how do i fix this problem +0

It looks like whatever is inrt.data at line 14 is not a valid string representation of an integer.
But since you don't show that data there's nothing more anyone can say.
You could printrt.data just before calling parseInt to see what values you are processing