当前位置: 首页 > 知识库问答 >
问题:

片段中的Lateinit属性尚未初始化

李和裕
2023-03-14

当变量只在OnCreate中声明时,为什么我的片段不进入onCreateView?

class BeatBoxFragment : Fragment() {

    private lateinit var beatBox: BeatBox

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        var beatBox = BeatBox(requireContext())
        Log.d("Crashing", beatBox.toString() + " has been created, yer program does not go into onCreateView")
    }
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
    //var beatBox = BeatBox(requireContext())
    Log.d("Crashing", "The program does not enter onCreateView unless I uncomment the beatBox definition!)

    }

}

共有1个答案

韩梓
2023-03-14

问题是...重新声明beatbox:

private lateinit var beatBox: BeatBox

fun test() {
    var beatBox = BeatBox() // Create new beatbox for `test() scope`.
                            // beatBox for class scope is still uninitialized.
}

因此,只需去掉oncreate中的var关键字;)

 类似资料:
  • 我不知道这是怎么回事 主要活动 我遇到了这个问题 2022-03-18 09:18:27.393 13874-13874/com。实例githubuser2 E/AndroidRuntime:致命异常:主进程:com。实例githubuser2,PID:13874 java。lang.RuntimeException:无法启动活动组件信息{com.example.githubuser2/com.e

  • 我正在尝试使用Spring-boot+Vaadin创建一个web项目,并且希望使用spring-data-jpa和hibernate从PostgreSQL数据库中获取数据。 在我的Vaadin看来,我尝试自动连接我的服务类,但我总是得到null,而且eror堆栈跟踪没有告诉我原因。 数据库得我得配置: 视图和UI: pom.xml: 我的服务: 更新的解决方案:

  • 我正在为DI与Dagger2的项目工作。我正在MVP架构中注入presenter。由于某种原因,当我构建应用程序时,它会出现错误:“LateInit property presenter has not been initialized”。我知道这意味着没有注射,但我不明白为什么。下面是我的代码: 应用程序类 家庭模块 AppComponent 房屋结构 如果需要任何关于代码的其他信息,请询问..

  • 我的代码成功构建,但每当我运行它时都会出现异常。不知道为什么匕首2不初始化变量。请告诉我哪里错了。给出以下例外情况: UninitializedPropertyAccessException:lateinit属性databaseService尚未初始化 依赖关系:

  • 我经常得到。但这个应用程序运行得很好。注意:我不想将演示者注入到活动中。提前谢谢! 以下是我的活动: 这是我的主持人: 这是我的数据管理器: 和AppDataManager: 最后,我的测试失败了: gradle文件: 我的模块课程: 实际错误是科特林。UninitializedPropertyAccessException:lateinit属性dataManager尚未初始化

  • Json服务器数据显示,在使用retrofit2和rxjava2的android中,当参数传递给inteface时,会出现错误。 接口