Android Studio:“应用程序不断停止”,没有错误消息

彼得

我想练习数据绑定。在添加绑定之前,应用程序运行正常。目前,应用程序打开一秒钟并关闭出现错误:

 About Me keeping stoping

在此处输入图片说明

当我想调试代码时也是如此。

我仔细检查了所有代码,没有下划线。为什么应用程序崩溃?

这是代码:MainActivity.kt

package com.pinodev.aboutme
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.view.inputmethod.InputMethodManager

import com.pinodev.aboutme.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding.doneButton.setOnClickListener {
            addNickname(it)
        }
    }
    private fun addNickname(view: View){
        binding.apply {
            binding.nicknameText.text = binding.nicknameEdit.text
            invalidateAll()
            binding.nicknameEdit.visibility = View.GONE
            binding.doneButton.visibility = View.GONE
            binding.nicknameText.visibility = View.VISIBLE
        }
        // Hide the keyboard.
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(view.windowToken, 0)
    }
}

构建.gradle

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.pinodev.aboutme"
        minSdk 19
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        dataBinding true
    }
    buildToolsVersion '31.0.0'
}

dependencies {

    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

活动_main.xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto">
 <LinearLayout

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingStart="@dimen/padding"
    android:paddingEnd="@dimen/padding">

    <TextView
        android:id="@+id/name_text"
        style="@style/NameStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/name"
        android:textAlignment="center" />

    <EditText
        android:id="@+id/nickname_edit"
        style="@style/NameStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/what_is_your_nickname"
        android:inputType="textPersonName"
        android:minHeight="48dp"
        android:textAlignment="center"
        android:textColorHint="#78909C" />

    <Button
        android:id="@+id/done_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="@dimen/layout_margin"
        android:fontFamily="@font/roboto"
        android:text="@string/done" />

    <TextView
        android:id="@+id/nickname_text"
        style="@style/NameStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone" />

    <ImageView
        android:id="@+id/star_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/layout_margin"
        android:contentDescription="@string/yellow_star"
        app:srcCompat="@android:drawable/btn_star_big_on"
        tools:ignore="ImageContrastCheck" />

    <ScrollView
        android:id="@+id/bio_scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/bio_text"
            style="@style/NameStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/bio" />
    </ScrollView>
</LinearLayout>
</layout>

Logcat 输出:

2021-09-02 15:09:25.032 4304-4304/com.pinodev.aboutme E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.pinodev.aboutme, PID: 4304
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pinodev.aboutme/com.pinodev.aboutme.MainActivity}: kotlin.UninitializedPropertyAccessException: lateinit property binding has not been initialized
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: kotlin.UninitializedPropertyAccessException: lateinit property binding has not been initialized
        at com.pinodev.aboutme.MainActivity.onCreate(MainActivity.kt:13)
        at android.app.Activity.performCreate(Activity.java:7994)
        at android.app.Activity.performCreate(Activity.java:7978)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
2021-09-02 15:09:25.049 4304-4304/com.pinodev.aboutme I/Process: Sending signal. PID: 4304 SIG: 9
卡鲁内什·帕莱卡

这是因为您还没有初始化绑定。您已将顶层的绑定声明为 lateinit 并且尚未初始化,这正是错误试图说明的内容。

只需对您的 onCreate 方法进行以下更改,您可以在其中初始化您的绑定和 setContentView ,

private lateinit var binding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        binding.doneButton.setOnClickListener {
            addNickname(it)
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

没有错误,但应用程序在 android studio Java 中一直停止

不幸的是,该应用程序已停止 Android Studio 并且没有错误

带有 Retrofit2 的 Android 应用程序崩溃而没有错误消息

Xamarin - android 空白应用程序在启动时停止,没有错误或警告

React-native 应用程序在 android studio 中没有错误地崩溃

我在Android Studio上的应用程序崩溃,没有错误

android studio 数据库应用程序崩溃没有错误

Android的工作室:应用程序退出,但打造的是没有错误

使用exoplayer的Android Kotlin应用程序崩溃而没有错误指示

react-native-camera:Android 应用程序崩溃没有错误

如何检查为什么我的 android 应用程序崩溃没有错误

第一次Android应用程序崩溃,但代码中没有错误

Android 应用程序不断停止

尽管有UncaughtExceptionHandler,但间歇性Android应用程序崩溃,没有错误日志

当我的应用程序在 android oreo 8.1 上崩溃时没有错误报告

“不幸的是,应用程序已停止错误” Android Studio

Android Studio kotlin 应用程序“保持停止”错误

我的 Kotlin Android Studio 应用程序在按下按钮时不断崩溃,而没有给出值

尝试将记录插入数据库时 Android Studio 应用程序崩溃,错误消息没有意义

错误:安装没有成功。无法在 Android Studio 中安装该应用程序

Android 应用程序不断崩溃(Android studio)

Android Studio-没有可调试的应用程序

Android 应用程序崩溃,没有 logcat 错误

Springboot 2 RSocket应用程序启动,然后立即停止,没有错误消息

Android 应用程序在运行时“不幸地停止”。错误是没有找到处理意图的活动

单击按钮后,Android Studio应用程序不断崩溃

我的应用程序在Android Studio中不断崩溃

无法在 android 模拟器上运行应用程序,应用程序不断停止

在命令行上(没有android studio)开发Android kotlin应用程序与Android Java应用程序的差异