首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不安全地使用可为空的接收器类型捆绑?android应用程序将编译并显示警告,但会立即崩溃

不安全地使用可为空的接收器类型捆绑?android应用程序将编译并显示警告,但会立即崩溃
EN

Stack Overflow用户
提问于 2019-05-14 18:13:22
回答 1查看 6.9K关注 0票数 8

我是kotlin和android编程的新手,看起来这门语言在没有一些后退功能的情况下发展得相当快。

下面是我在MainActivity.kt中的两个主要函数

代码语言:javascript
运行
复制
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“块中。

我已经将数据(传递的意图)包装在null检查中,尝试使用null检查将其声明为新值,但在编译时总是得到相同的警告:

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

它还一直在说这个贬低的警告:这个版本中使用了不推荐使用的Gradle功能,使其与Gradle 6.0不兼容。

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

EN

Stack Overflow用户

回答已采纳

发布于 2019-05-14 19:09:33

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

代码语言:javascript
运行
复制
photoImageView.setImageBitmap(data?.extras?.get("data") as? Bitmap)

这三个确保如果datadata.extras"data"为null或不是Bitmap,则链本身也为null。

弃用的Gradle特性通常是关于弃用的API的警告。只要确保将你所有的插件更新到最新的版本,只要你需要的插件不能适应新的API,就不要更新到Gradle 6。但就目前而言,它只是警告您相关的更改。

票数 11
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56128031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档