java.lang.RuntimeException: Unable to start activity ComponentInfo {}: java.lang.NullPointerException

Olá! Estou com dificuldade de encontrar a solução para esse problema, no código quero passar da activity "MainActivity" para "PlantaList", mas na hora de testar o aplicativo na máquina virtual o app fecha depois dessa ação e no terminal exibe o seguinte erro:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.adriano.campanha_flora_pre_alpha/com.example.adriano.campanha_flora_pre_alpha.PlantaList}: java.lang.NullPointerException

Segue Android Manifest:

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/campanha_flora_icon"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name="MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".PlantaList"/>
    <activity android:name=".ConsultaAdapter" />
    <activity android:name=".TelaCadastro"/>

</application>

Segue MainActivity:

package com.example.adriano.campanha_flora_pre_alpha;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button botaocadastrar = (Button) findViewById(R.id.btnCadastrar);

    botaocadastrar.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, TelaCadastro.class));

        }
    });

    Button botaoconsultar = (Button) findViewById(R.id.btnConsultar);

    botaoconsultar.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, PlantaList.class));

        }
    });

    Button botaopreferencias = (Button) findViewById(R.id.btnPreferencias);

    botaopreferencias.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, TelaCadastro.class));

        }
    });
}

}

Segue PlantaList:

package com.example.adriano.campanha_flora_pre_alpha;

import android.database.Cursor;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.GridView;

import java.util.ArrayList;

public class PlantaList extends AppCompatActivity {

GridView gridView;
ArrayList<Planta> list;
ConsultaAdapter adapter = null;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tela_consulta);

    gridView = (GridView) findViewById(R.id.gridView);
    list = new ArrayList<>();
    adapter = new ConsultaAdapter(this, R.layout.tela_consulta_2, list);
    gridView.setAdapter(adapter);

    // get all data from sqlite
    Cursor cursor = TelaCadastro.sqLiteHelper.getData("SELECT * FROM PLANTA");
    list.clear();
    while (cursor.moveToNext()){
        int id = cursor.getInt(0);
        String NomePopular = cursor.getString(1);
        String Especie = cursor.getString(2);
        String Familia = cursor.getString(3);
        String TipoDeRaiz = cursor.getString(4);
        String CorDeFlor = cursor.getString(5);
        byte[] image = cursor.getBlob(6);

        list.add(new Planta(NomePopular, Especie, Familia, TipoDeRaiz, CorDeFlor, image, id));
    }
    adapter.notifyDataSetChanged();
}

}

O que pode ser?