【问题标题】:Unable to initialize GoogleMap object in Kotlin无法在 Kotlin 中初始化 GoogleMap 对象
【发布时间】:2018-10-31 05:12:29
【问题描述】:

尝试创建成员变量 mMap 会引发错误“分类器 GoogleMap 没有伴随对象,因此必须在此处初始化”。在 Java 中,我会使用“Private GoogleMap mMap”。

感谢您的帮助!

private val TAG = "MapActivity"

private val FINE_LOCATION = Manifest.permission.ACCESS_FINE_LOCATION
private val COURSE_LOCATION = Manifest.permission.ACCESS_COARSE_LOCATION
private val LOCATION_PERMISSION_REQUEST_CODE = 1234;

private var mLocationPermissionGranted : Boolean = false
private var mMap = GoogleMap

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    像这样初始化 GoogleMap

     private lateinit var mMap: GoogleMap? = null
    

    实现 OnMapReadyCallback 接口并使用 onMapReady(GoogleMap) 回调方法获取 GoogleMap 对象的句柄。 GoogleMap 对象是地图本身的内部表示。要设置地图的视图选项,请修改其 GoogleMap 对象。

    class MainActivity : OnMapReadyCallback {
    
      // your other code
    
    override fun onMapReady(googleMap: GoogleMap) {
    mMap = googleMap  
    
    if (mMap != null) {
        val permission = ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_FINE_LOCATION)
    
        if (permission == PackageManager.PERMISSION_GRANTED) {
            mMap?.isMyLocationEnabled = true
        } else {
            requestPermission(
                    Manifest.permission.ACCESS_FINE_LOCATION,
                    LOCATION_REQUEST_CODE)
         }
     }
     }
    }
    

    【讨论】:

    • 感谢您的帮助!
    【解决方案2】:

    我尝试应用它

    私有 lateinit var 地图:GoogleMap? = 空

    但我得到了

    'lateinit' 修饰符不允许用于可空类型的属性

    【讨论】:

      猜你喜欢
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 2020-07-05
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多