gpt4 book ai didi

android - 可空接收器类型 bundle 的不安全使用? android 应用程序将在编译时出现警告但立即崩溃

转载 作者:行者123 更新时间:2023-12-02 11:59:59 24 4
gpt4 key购买 nike

我是 kotlin 和 android 编程的新手,似乎这种语言在没有一些落后功能的情况下发展得相当快。

这是我在 MainActivity.kt 中的两个主要功能

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

cameraButton.setOnClickListener {
val callCameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
if(callCameraIntent.resolveActivity(packageManager) != null) {
startActivityForResult(callCameraIntent, CAMERA_REQUEST_CODE)
}
}

replaceFragment(ReportsFragment())
bottom_navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)


}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)

val dt: Intent? = data

when(requestCode) {
CAMERA_REQUEST_CODE -> {
if(resultCode == Activity.RESULT_OK && data != null) {
//if(data != null) {
//&& data != null){
photoImageView.setImageBitmap(data.extras.get("data") as Bitmap)
}
}
else -> {
Toast.makeText(this, "Unrecognized request code", Toast.LENGTH_SHORT).show()
}
}
}

错误似乎出现在 onActivityResult 的“WHEN” block 中。

我已将数据(正在传递的 Intent )包装在空检查中,尝试使用空检查将其声明为新值,但在编译时它不断收到相同的警告:

Bundle类型的可空接收器的不安全使用?

它还一直在说这个贬值的警告:
此构建中使用了已弃用的 Gradle 功能,使其与 Gradle 6.0 不兼容。

我已将 gradle 版本切换到 5.1.1,并且 android Gradle 插件目前为 3.4.0(这可能是我的问题的一部分)

最佳答案

data.extras可能为空,因此请确保将其与 ?. 一起使用和 as? :

photoImageView.setImageBitmap(data?.extras?.get("data") as? Bitmap)

所有三个确保如果 data , data.extras"data"为空或不是 Bitmap ,链本身为空。

弃用的 Gradle 功能通常是关于弃用 API 的警告。只要确保将所有插件更新为最新的,只要您需要不适应新 API 的插件,就不要更新到 Gradle 6。但现在它只是警告你相关的变化。

关于android - 可空接收器类型 bundle 的不安全使用? android 应用程序将在编译时出现警告但立即崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56128031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com