无法解决此错误。 Kotlin -Firebase
Posted
技术标签:
【中文标题】无法解决此错误。 Kotlin -Firebase【英文标题】:Cannot solve this error. Kotlin -Firebase 【发布时间】:2021-11-24 09:10:51 【问题描述】:我需要将这些数据发送到回收站视图,因此我创建了一个适配器类和项目类。没有问题。但这是我得到的错误:
java.lang.RuntimeException:无法启动活动 ComponentInfocom.example.busconductor/com.example.busconductor.busCodesActivity:kotlin.UninitializedPropertyAccessException:lateinit 属性引用尚未初始化
error
我做得很好,但无法解决这个问题。
这是代码
class busCodesActivity : AppCompatActivity()
private lateinit var reference : FirebaseDatabase1
private lateinit var codeRecyclerView: RecyclerView
private lateinit var codeArrayList: ArrayList<CityCodes>
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_bus_codes)
codeRecyclerView = findViewById(R.id.recyclerView)
codeRecyclerView.layoutManager = LinearLayoutManager(this)
codeRecyclerView.setHasFixedSize(true)
codeArrayList = arrayListOf<CityCodes>()
getCodeDetails()
val Button = findViewById<Button>(R.id.button5)
Button.setOnClickListener
startActivity(Intent(this@busCodesActivity, conductorMenu::class.java))
private fun getCodeDetails()
val ref = reference.getReference("CityCodes")
ref.addValueEventListener(object : ValueEventListener
override fun onDataChange(snapshot: DataSnapshot)
if (snapshot.exists())
for (routeSnapshot in snapshot.children)
val code = routeSnapshot.getValue(CityCodes::class.java)
codeArrayList.add(code!!)
codeRecyclerView.adapter = CityAdapter(codeArrayList)
override fun onCancelled(error: DatabaseError)
TODO("Not yet implemented")
)
请帮助我。我是 kotlin 的新手。
【问题讨论】:
【参考方案1】:正如错误消息所说,您永远不会初始化您在此处声明的 reference
:
private lateinit var reference : FirebaseDatabase1
FirebaseDatabase1
中的 1
出乎意料,但我假设您知道它的来源。如果不是,您可能希望它是 FirebaseDatabase
而没有 1
。
我的猜测是你想在onCreate
中初始化它以指向数据库:
reference = Firebase.database
【讨论】:
我做到了。但我再次收到此错误java.lang.RuntimeException: Unable to instantiate activity ComponentInfocom.example.busconductor/com.example.busconductor.busCodesActivity: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.busconductor. Make sure to call FirebaseApp.initializeApp(Context) first
实际上,在我的项目中有两个应用程序模块,这是第二个应用程序模块。第一个效果很好。【参考方案2】:
我发现了错误。实际上它不在代码中。在我的项目中,我有两个应用程序模块。所以我必须在 Firebase 中添加这两个应用程序。所以这就是问题所在。否则我的代码是正确的。
在尝试使用 Firebase 之前,请确保将所有应用模块连接到 Firebase。
【讨论】:
以上是关于无法解决此错误。 Kotlin -Firebase的主要内容,如果未能解决你的问题,请参考以下文章
错误记录Kotlin 报错 ( Some kotlin libraries attached to this project were compiled with a newer kotlin )
错误记录Kotlin 报错 ( Some kotlin libraries attached to this project were compiled with a newer kotlin )
kotlin + Dagger2 :没有@Provides-annotated 方法就无法提供