Usando "compareTO"

Olá pessoal sou novo aqui, e em programação também, minha pergunta pode até se ignorância mim mas alguém poderia me ajuda, estou comparando um String chamada titulo dentro de uma estrutura, copila tudo normal porém, quando o código e executador e chama o método “bubberShot” da um erro no console, em baixa segue a mensagem de erro e o método que está com problemas.

Há e também como poderia está invocando este método na class principal “man”.
Desde já agradeço.

##################################################################

(Exception in thread “main” java.lang.NullPointerException
at Cadastro.bubberShot(Cadastro.java:51)
at Cadastro.main(Cadastro.java:39))

##################################################################

import java.util.Scanner;

public class Cadastro {

public static void main (String[]args) {
	
	Livros[] cadast = new Livros [5];
	String condic = null;

	
	
	for(int i = 0 ; i < cadast.length; i++) {
		
		cadast[i]= new Livros();
		
		System.out.println("\tCadastro de livro "+i+":");
		
		System.out.print("Infomre o titulo do livro:");
		cadast[i].titulo = new Scanner(System.in).nextLine();
		System.out.print("Infomre o ano de publicação:");
		cadast[i].anoPublic = new Scanner(System.in).nextInt();
		System.out.print("Infomre o autor:");
		cadast[i].autor = new Scanner(System.in).nextLine();
		System.out.print("Infomre a editora:");
		cadast[i].editora = new Scanner(System.in).nextLine();
		
					
		System.out.println("#####################################");
		
		System.out.print("Deseja continuar cadastrando livros? S/N!");
		condic = new Scanner(System.in).nextLine();
			
			if(condic.equalsIgnoreCase("N")){
			break;
			}
	
	}

linha 39 bubbleSort(cadast);

}

public static void bubbleSort(Livros[] vt) {
	
	String aux=null;
	
	for(int i = 1 ; i <vt.length ; i++) {
		
		for(int j = vt.length-1; j>=i; j--) {

linha 51 int retorno = vt[j].titulo.compareTo(vt[j-1].titulo);

			if(retorno<0) {
				
				aux=vt[j].titulo;
				vt[j].titulo=vt[j-1].titulo;
				vt[j-1].titulo=aux;
				
			}
				
			}
			
		}
		
	for(Livros x:vt) {
		
		System.out.println("|"+x);
		
		
	}
	
	
	
}

}

Mostre a linha 51 da classe Cadastro, por favor;

O nome do método não deveria ser bubbleSort?
É o nome do algoritmo de ordenação mais simples que existe.

Qual o conteúdo do array vt, como você inicializou ele?
Ou seus elementos estão null ou o titulo está null.

Como o @staroski disse, você precisa garantir que os elementos do vetor não estão nulos.

essa e a linha 51
(int retorno = vt[j].titulo.compareTo(vt[j-1].titulo))

os String titulo estão preenchidos por entrada do usuário…

estou achando que o erro e por causa do tamanho do vetor que e de 5 porém, se o usuário para o laço antes de termina o vetor da esse erro na hora que passa pelo Bubblesort

Não estão nulos, estão preenchidos com entrada do usurário.

linha 51 /* int retorno = vt[j].titulo.compareTo(vt[j-1].titulo); */

Veja bem, a mensagem de erro é esta:

E a linha 51 é esta:

As únicas possibilidades seriam:
a posição i de vt tem valor nulo
O atributo titulo do objeto que está na posição i de vt está nulo

NullPointerException indica que você está tentando acessar um membro de um objeto que não foi inicializado.

Se você está passando um vetor que possui elementos não inicializados, você precisa adaptar seu código.