Android kotlin中本应无错误的许多错误

Android kotlin中本应无错误的许多错误,android,firebase,kotlin,Android,Firebase,Kotlin,我对android studio和kotlin有点陌生,我正在制作一个短信应用程序。昨天我的代码还在工作,但今天当我打开我的项目时,我发现这些错误对我来说毫无意义。我一整天都在试图解决这些问题,但没有运气 如果有人能帮忙,我将不胜感激 这是我的主要活动文件 quxtar.com import android.app.Activity import android.content.ClipData import android.content.ContentProvider import and

我对android studio和kotlin有点陌生,我正在制作一个短信应用程序。昨天我的代码还在工作,但今天当我打开我的项目时,我发现这些错误对我来说毫无意义。我一整天都在试图解决这些问题,但没有运气 如果有人能帮忙,我将不胜感激

这是我的主要活动文件

quxtar.com

import android.app.Activity
import android.content.ClipData
import android.content.ContentProvider
import android.content.ContentResolver
import android.content.Intent
import android.graphics.drawable.BitmapDrawable
import android.net.Uri
import android.provider.MediaStore.Images.Media.getBitmap
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.MediaStore
import android.util.Log
import android.widget.Button
import android.widget.ImageButton
import android.widget.TextView
import android.widget.Toast
import com.google.firebase.auth.FirebaseAuth


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

        val emailui = findViewById<TextView>(R.id.email_register_scr)
        val passwordui = findViewById<TextView>(R.id.password_register_scr)
        val registerbtn = findViewById<Button>(R.id.regidterbtn_register_scr)
        val loginbtn = findViewById<TextView>(R.id.login_register_scr)

        var email = emailui.text.toString()
        var password = passwordui.text.toString()

        val selectbtn = findViewById<ImageButton>(R.id.selectbutton_register)

        var selectPhotoURI: Uri? = null

        selectbtn.setOnClickListener(){


            val intent = Intent(Intent.ACTION_PICK)
            intent.type = "image/*"

            println("image selecting")

            //compress
        }

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

            super.onActivityResult(requestCode, resultCode, data)
            if (requestCode == 0 && resultCode == Activity.RESULT_OK && data != null){

                //check selected image

                selectPhotoURI = data.data

                println("selectedphoto")
                println(selectPhotoURI)

                val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, selectPhotoURI);

                val bitmapDrawable = BitmapDrawable(bitmap)

                selectbtn.setBackgroundDrawable(bitmapDrawable)

            }

        }

    }

    registerbtn.setOnClickListener {
        performRegister()
    }

    loginbtn.setOnClickListener{
        println("Try to show log in activity")
        //launch login

        val intent = Intent(this, LogInActivity:: class.java)
        startActivity(intent)

    }
}

private fun performRegister(){

    val emailui = findViewById<TextView>(R.id.email_register_scr)
    val passwordui = findViewById<TextView>(R.id.password_register_scr)
    val email = emailui.text.toString()
    val password = passwordui.text.toString()

    if (email.isEmpty() or  password.isEmpty()){
        Toast.makeText(this, "please enter a mail/password", Toast.LENGTH_SHORT).show()
        return
    }

    println("Mail: $email");
    println("Password: $password");

    //Fire base authentication to create user with mail and password
    FirebaseAuth.getInstance().createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener {
                if (!it.isSuccessful) return@addOnCompleteListener
                // Sign in success, update UI with the signed-in user's information
                println(it.result?.user?.uid)

            }
            .addOnFailureListener() {
                Toast.makeText(this, "Failed to create user: ${it.message}", Toast.LENGTH_SHORT).show()

                Log.d("Main", "failed to create user: ${it.message}}")

            }
}
这些就是错误

 e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (78, 5): Expecting member declaration

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (78, 16): Expecting member declaration

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (78, 17): Expecting member declaration

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (78, 36): Conflicting overloads: public final fun <no name provided>(): Unit defined in quxtar.com.MainActivity, public final fun <no name provided>(): Unit defined in quxtar.com.MainActivity

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (78, 36): Function declaration must have a name

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (82, 32): Conflicting overloads: public final fun <no name provided>(): Unit defined in quxtar.com.MainActivity, public final fun <no name provided>(): Unit defined in quxtar.com.MainActivity

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (82, 32): Function declaration must have a name

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (95, 22): Unresolved reference: findViewById

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (100, 24): 'this' is not defined in this context

e: C:\Users\hecto\AndroidStudioProjects\Hm\app\src\main\java\quxtar\com\MainActivity.kt: (117, 32): 'this' is not defined in this context

您尚未为MainActivity.kt中第82行定义的函数提供任何名称

onActivityResult方法不建议放在onCreate方法内部

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

        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 0 && resultCode == Activity.RESULT_OK && data != null){

            //check selected image

            selectPhotoURI = data.data

            println("selectedphoto")
            println(selectPhotoURI)

            val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, selectPhotoURI);

            val bitmapDrawable = BitmapDrawable(bitmap)

            selectbtn.setBackgroundDrawable(bitmapDrawable)

        }

    }
某些对象的声明是错误的。因此,出现此错误时需要成员声明、未解析引用:findViewById和函数声明必须有名称。确保以面向对象的方式进行操作,您希望调用的对象是公共的或全局的,而不是私有的或受保护的

“this”未在此上下文中定义使用特定的this@MainActivity相反


快乐编码

这部分代码放置错误:

registerbtn.setOnClickListener{ 性能记录器 } loginbtn.setOnClickListener{ 打印尝试显示登录活动 //启动登录 val intent=Intentthis,LogInActivity::class.java 星际维京帐篷 } 活动的正确版本:

quxtar.com 导入android.app.Activity 导入android.content.ClipData 导入android.content.ContentProvider 导入android.content.ContentResolver 导入android.content.Intent 导入android.graphics.drawable.BitmapDrawable 导入android.net.Uri 导入android.provider.MediaStore.Images.Media.getBitmap 导入androidx.appcompat.app.appcompat活动 导入android.os.Bundle 导入android.provider.MediaStore 导入android.util.Log 导入android.widget.Button 导入android.widget.ImageButton 导入android.widget.TextView 导入android.widget.Toast 导入com.google.firebase.auth.FirebaseAuth 类MainActivity:AppCompativeActivity{ 覆盖乐趣onCreatesavedInstanceState:捆绑{ super.onCreatesavedInstanceState setContentViewR.layout.activity\u main val emailui=findviewbydr.id.email\u register\u scr val passwordui=findviewbydr.id.password\u register\u scr val registerbtn=findviewbydr.id.regidterbtn\u register\u scr val loginbtn=findviewbydr.id.login\u register\u scr var email=emailui.text.toString var password=passwordui.text.toString val selectbtn=findviewbydr.id.selectbutton\u寄存器 var selectPhotoURI:Uri?=null 选择btn.setOnClickListener{ val intent=IntentIntent.ACTION\u PICK intent.type=图像/* 打印图像选择 //压缩 } ActivityResultRequestCode:Int、resultCode:Int、data:Intent的乐趣{ super.onActivityResultrequestCode、结果代码、数据 如果requestCode==0&&resultCode==Activity.RESULT\u OK&&data!=null{ //检查所选图像 选择PhotoUri=data.data 打印选定照片 printlnselectPhotoURI val bitmap=MediaStore.Images.Media.getBitmapcontentResolver,选择PhotoURI; val bitmapDrawable=BitmapDrawablebitmap 选择btn.setBackgroundDrawable位图Drawable } } registerbtn.setOnClickListener{ 性能记录器 } loginbtn.setOnClickListener{ 打印尝试显示登录活动 //启动登录 val intent=Intentthis,LogInActivity::class.java 星际维京帐篷 } } } 私人娱乐表演登记{ val emailui=findviewbydr.id.email\u register\u scr val passwordui=findviewbydr.id.password\u register\u scr val email=emailui.text.toString val password=passwordui.text.toString 如果email.isEmpty或password.isEmpty{ Toast.MakeText请输入邮件/密码Toast.LENGTH\u SHORT.show 回来 } printlnMail:$email; printlnPassword:$password; //Fire base身份验证以创建具有邮件和密码的用户 FirebaseAuth.getInstance.CreateUserWithEmail和PasswordEmail,密码 .addOnCompleteListener{ 如果!它成功了return@addOnCompleteListener //登录成功,使用登录用户的信息更新UI printlnit.result?.user?.uid } .addOnFailureListener{ Toast.makeTextthis未能创建用户:${it.message},Toast.LENGTH\u SHORT.show Log.dMain,未能创建用户:${it.message} } }
您错过了第二个括号。下面的代码应该来自onCreate方法

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

        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 0 && resultCode == Activity.RESULT_OK && data != null){

            //check selected image

            selectPhotoURI = data.data

            println("selectedphoto")
            println(selectPhotoURI)

            val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, selectPhotoURI);

            val bitmapDrawable = BitmapDrawable(bitmap)

            selectbtn.setBackgroundDrawable(bitmapDrawable)

        }

    }
这个点击监听器应该在onCreate中

 registerbtn.setOnClickListener {
    performRegister()
}

loginbtn.setOnClickListener{
    println("Try to show log in activity")
    //launch login

    val intent = Intent(this, LogInActivity:: class.java)
    startActivity(intent)

}
最后,您应该将缺少的括号放在performRegister方法之后

我没有足够的声誉来评论
这就是为什么我发布了答案。

我很愚蠢,我无法将括号放在正确的位置XD昨天我的代码正常工作,但今天当我打开我的项目时,我发现了这些错误,这些错误从来都不是真的。谢谢,我在发布问题“愚蠢的我”XD之后就看到了这些