【问题标题】:Fix the Error which appears on button click in Android Studio / Kotlin?修复在 Android Studio / Kotlin 中单击按钮时出现的错误?
【发布时间】:2019-12-23 10:52:11
【问题描述】:

在我的 Android 应用程序中,每次单击按钮时都会出现错误。

科特林:

fun goClicked(view: View) {
    mAuth.signInWithEmailAndPassword(emailEditText?.text.toString(), passwordEditText?.text.toString())
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                logIn()
            } else {
                // If sign in fails, display a message to the user.
                Toast.makeText(this, "Account nicht gefunden!",
                    Toast.LENGTH_SHORT).show()

            }
        }
}

XML:

<Button
    android:id="@+id/button10"
    style="@android:style/Widget.Holo.Button"
    android:layout_width="244dp"
    android:layout_height="61dp"
    android:layout_marginStart="83dp"
    android:layout_marginTop="115dp"
    android:layout_marginEnd="84dp"
    android:layout_marginBottom="215dp"
    android:background="@drawable/roundedbutton"
    android:onClick="goClicked"
    android:text="Login"
    android:textColor="#F8000000"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/passwordEditText" />

错误:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: spiels.dev.easysender, PID: 31395
    java.lang.IllegalStateException: Could not find method goClicked(View) in a parent or ancestor Context for android:onClick attribute defined on view class androidx.appcompat.widget.AppCompatButton with id 'button3'
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:424)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:381)
        at android.view.View.performClick(View.java:7352)
        at android.widget.TextView.performClick(TextView.java:14177)
    at android.view.View.performClickInternal(View.java:7318)
    at android.view.View.access$3200(View.java:846)
    at android.view.View$PerformClick.run(View.java:27807)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7037)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

每次单击按钮时都会显示此错误消息。

我希望你能帮助我 最好的问候桑德罗

【问题讨论】:

  • 在堆栈跟踪中明确提到了原因:在 android:onClick 属性的父或祖先上下文中找不到方法 goClicked(View)。检查您使用布局的Activity/Fragment 代码。
  • 您在活动中的按钮方法应该是公开的。您现在可能已将其设为私有,请检查。
  • 发布Activity/Fragment 声明(具有类...的那个)?

标签: java android android-studio kotlin error-handling


【解决方案1】:

您似乎在另一个按钮中调用了相同的函数

id:'button3'

所以当你点击 goClicked 函数时,Android 会搜索所有的 ref。需要它。

TL;博士。更改函数的名称 goClicked 应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 2017-09-22
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多