【发布时间】:2020-12-20 09:09:08
【问题描述】:
最初我唯一的 Activity 是 MapsActivity ,带有以下 sn-p :
class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMarkerClickListener {
private lateinit var map: GoogleMap
当我在 Java 源代码中创建 MainActivity 时,我这样调用 MapActivity:
Intent i = new Intent(getApplicationContext(), MapsActivity.class);
startActivity(i);
但是现在,我得到 lateinit 属性映射尚未初始化
我尝试了 [这里][1] 的建议,但它说 lateinit 修饰符是不允许的 [1]:https://stackoverflow.com/questions/53076696/unable-to-initialize-googlemap-object-in-kotlin
【问题讨论】:
-
你能准确地展示你尝试了什么吗?我认为
private lateinit var mMap: GoogleMap? = null会解决您的问题 -
@DavidKroukamp 您不能将 null 或任何值分配给 lateinit val/var
-
@padlanau 你能分享你的整个班级以及你想在哪里使用对象映射吗?
-
如果是这种情况,那么 OP 应该简单地执行
private var map: GoogleMap? = null并在使用map属性之前检查 null -
lateinit的重点是避免使事物可以为空,以便您以后可以初始化它们。 OP的问题是他们承诺在任何东西访问它之前初始化map,但是在它被设置之前有些东西正在读取它
标签: android google-maps kotlin