android studio一直报错Unresolved reference: connect


package com.example.myapplication

import android.Manifest
import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.*
import android.graphics.ColorSpace.Rgb
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import java.nio.ByteBuffer
import java.lang.Float
import android.graphics.ColorMatrix
import android.graphics.ColorMatrixColorFilter
import android.graphics.ColorSpace
import java.util.Calendar.getInstance


class MainActivity : AppCompatActivity() {
    private lateinit var imageView: ImageView
    private val REQUEST_CODE_UPLOAD_IMAGE = 1
    private val READ_EXTERNAL_STORAGE_REQUEST_CODE = 2

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

        imageView = findViewById(R.id.imageView)
        imageView.setOnClickListener {
            // 在这里实现打开图片预览的代码
            // 可以使用第三方库或自己实现一个图片预览界面
        }

        val uploadButton = findViewById<Button>(R.id.uploadButton)
        uploadButton.setOnClickListener {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED
            ) {
                ActivityCompat.requestPermissions(
                    this,
                    arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
                    READ_EXTERNAL_STORAGE_REQUEST_CODE
                )
            } else {
                openImageSelector()
            }
        }
    }

    private fun openImageSelector() {
        val intent = Intent(Intent.ACTION_GET_CONTENT)
        intent.type = "image/*"
        startActivityForResult(intent, REQUEST_CODE_UPLOAD_IMAGE)
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == REQUEST_CODE_UPLOAD_IMAGE && resultCode == Activity.RESULT_OK) {
            // 在这里处理从本地图片选择器返回的结果
            val selectedImageUri: Uri? = data?.data
            if (selectedImageUri != null) {
                // 将选中的图片显示在ImageView上
                imageView.setImageURI(selectedImageUri)
            }
        }
    }

    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if (requestCode == READ_EXTERNAL_STORAGE_REQUEST_CODE) {
            if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                openImageSelector()
            } else {
                Toast.makeText(
                    this,
                    "需要授权才能选择本地图片",
                    Toast.LENGTH_SHORT
                ).show()
            }
        }
    }
    @RequiresApi(Build.VERSION_CODES.O)
    fun colormanager(view: View) {
        Toast.makeText(this, "下面将进行色彩管理", Toast.LENGTH_SHORT).show()
        // 在这里添加你的色彩管理代码
        val inputStream = resources.openRawResource(R.raw.eci)
        val byteArray = inputStream.readBytes()
        val buffer = ByteBuffer.wrap(byteArray)
        val floatArray = FloatArray(byteArray.size / 4)
        for (i in floatArray.indices) {
            floatArray[i] = Float.intBitsToFloat(buffer.int).toFloat()
        }
        val params = Rgb.TransferParameters(
            0.45454544,  // a
            0.3030303,   // b
            0.0,         // c
            0.45454544,  // d
            0.6969697    // g
        )
        val fromSpace = ColorSpace.get(ColorSpace.Named.DISPLAY_P3)
        val toSpace = ColorSpace.get(ColorSpace.Named.SRGB)
        val connector = fromSpace.connect(toSpace, params)
        val colorMatrix = ColorMatrix()
        connector.connect(colorMatrix)
        val colorFilter = ColorMatrixColorFilter(colorMatrix)
        val imageView = findViewById<ImageView>(R.id.imageView)
        imageView.colorFilter = colorFilter



    }


}

在这里一直报错Unresolved reference: connect

img

img

飘红,一般不都是没有这个方法吗

android.graphics.ColorSpace没有接收ColorSpace和ColorSpace.Rgb.TransferParameters这2个参数的connect方法

1.检查版本,8.1以上才能用android.graphics.ColorSpace包;
2.检查必须的函数,或者写全参数包括null,再调试一下,有时候会有更细的错误提示;
3.有师兄使用 connect() 方法之前,都先判断两个颜色空间是否可以连接,具体的要不试试ColorSpace.isConnectable() 方法?(这个不太清楚)进行判断。看到过两个颜色空间不可连接会有 IllegalArgumentException 异常,跟你这个不像。
所以想来想去,只可能是你miniSDK的版本太低。