프레그먼트에서 카카오지도 사용 시, 다른 프레그먼트로 이동할 때 어플 꺼짐 현상

코틀린으로 어플 개발중인데, 프레그먼트에서 카카오지도 사용중에 있습니다.
바텀 네비게이션뷰의 다른 버튼을 통해 다른 프레그먼트로 이동 시, 어플이 꺼집니다. 오류는
FATAL EXCEPTION: main
Process: com.example.capston, PID: 24150
java.lang.NullPointerException
at com.example.capston.homepackage.NaviHomeFragment.getBinding(NaviHomeFragment.kt:48)
at com.example.capston.homepackage.NaviHomeFragment.stopTracking(NaviHomeFragment.kt:200)
at com.example.capston.homepackage.NaviHomeFragment.onDestroy(NaviHomeFragment.kt:205)

위의 오류가 뜹니다.

해당 코드 첨부합니다…

<코드>
package com.example.capston.homepackage

import android.Manifest
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.location.LocationManager
import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import android.util.Log
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import com.example.capston.MainActivity
import com.example.capston.R
import com.example.capston.WalkFragment
import com.example.capston.databinding.FragmentNaviHomeBinding
import com.example.capston.databinding.FragmentWalkBinding
import kotlinx.android.synthetic.main.activity_walk.*
import kotlinx.android.synthetic.main.fragment_navi_home.*
import net.daum.mf.map.api.MapView
import java.text.SimpleDateFormat
import java.util.*

lateinit var mapView: MapView

class NaviHomeFragment : Fragment() {
val PERMISSIONS_REQUEST_CODE = 100
var REQUIRED_PERMISSIONS = arrayOf(Manifest.permission.ACCESS_FINE_LOCATION)
private val ACCESS_FINE_LOCATION = 1000

private var _binding: FragmentWalkBinding? = null
private val binding get() = _binding!!

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    arguments?.let {
    }
}

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    _binding = FragmentWalkBinding.inflate(inflater, container, false)
    val view = binding.root

    return view
}


override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    (activity as AppCompatActivity).supportActionBar?.show()

    binding.startBtn.setOnClickListener {
        Log.d("text", "dd")
        if (checkLocationService()) {
            permissionCheck()
        }
    }
}

lateinit var mainActivity: MainActivity

override fun onAttach(context: Context) {
    super.onAttach(context)
    mainActivity = context as MainActivity
}
override fun onDestroyView() {
    super.onDestroyView()
    _binding = null
}

companion object {
    @JvmStatic
    fun newInstance(param1: String, param2: String) =
        WalkFragment().apply {
            arguments = Bundle().apply {
            }
        }
}

private fun permissionCheck() {
    val preference = this.requireActivity().getPreferences(Context.MODE_PRIVATE)
    val isFirstCheck = preference.getBoolean("isFirstPermissionCheck", true)
    if (ContextCompat.checkSelfPermission(
            context as Activity,
            Manifest.permission.ACCESS_FINE_LOCATION
        ) != PackageManager.PERMISSION_GRANTED
    ) {
        if (ActivityCompat.shouldShowRequestPermissionRationale(
                context as Activity,
                Manifest.permission.ACCESS_FINE_LOCATION
            )
        ) {
            val builder = AlertDialog.Builder(context as Activity)
            builder.setMessage("현재 위치를 확인하시려면 위치 권한을 허용해주세요.")
            builder.setPositiveButton("확인") { dialog, which ->
                ActivityCompat.requestPermissions(
                    context as Activity,
                    arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
                    ACCESS_FINE_LOCATION
                )
            }
            builder.setNegativeButton("취소") { dialog, which ->

            }
            builder.show()
        } else {
            if (isFirstCheck) {
                preference.edit().putBoolean("isFirstPermissionCheck", false).apply()
                ActivityCompat.requestPermissions(
                    context as Activity,
                    arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
                    ACCESS_FINE_LOCATION
                )
            } else {
                val builder = AlertDialog.Builder(context as Activity)
                builder.setMessage("현재 위치를 확인하시려면 설정에서 위치 권한을 허용해주세요.")
                builder.setPositiveButton("설정으로 이동") { dialog, which ->
                    val intent = Intent(
                        Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
                        Uri.parse("http://www.google.com")
                    )
                    startActivity(intent)
                }
                builder.setNegativeButton("취소") { dialog, which ->
                }
                builder.show()
            }
        }
    } else {
        startTracking()
    }
}

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults)
    if (requestCode == ACCESS_FINE_LOCATION) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            Toast.makeText(context, "위치 권한이 승인되었습니다", Toast.LENGTH_SHORT).show()
            startTracking()
        } else {
            Toast.makeText(context, "위치 권한이 거절되었습니다", Toast.LENGTH_SHORT).show()
            permissionCheck()
        }
    }
}

private fun checkLocationService(): Boolean {
    val locationManager = activity?.getSystemService(Context.LOCATION_SERVICE) as LocationManager
    return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
}

private fun startTracking() {
    binding.kakaoMapView.currentLocationTrackingMode = MapView.CurrentLocationTrackingMode.TrackingModeOnWithoutHeading
}

private fun stopTracking() {
    binding.kakaoMapView.currentLocationTrackingMode = MapView.CurrentLocationTrackingMode.TrackingModeOff

}

override fun onDestroy() {
    stopTracking()
    super.onDestroy()
}

}