运行我的应用程序时出现问题,java.lang.RuntimeException

问题描述 投票:0回答:1

今天我尝试运行我的应用程序,但遇到了一个问题,我不知道是什么问题。昨天工作正常。

如果我评论指示的行应用程序运行完美

感谢您的帮助。

这是错误:

FATAL EXCEPTION: main
Process: com.example.tribuum_app_2022, PID: 7542
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tribuum_app_2022/com.example.tribuum_app_2022.ui.view.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)

at android.app.ActivityThread.- wrap12(ActivityThread.java)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)

at android.os.Handler.dispatchMessage(Handler.java:102)

at android.os.Looper.loop(Looper.java:154)

at android.app.ActivityThread.main(ActivityThread.java:6077)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.NullPointerException
at com.example.tribuum_app_2022.ui.view.MainActivity.validateUserLogin(MainActivity.kt:37)
at com.example.tribuum_app_2022.ui.view.MainActivity.onCreate(MainActivity.kt:30)

at android.app.Activity.performCreate(Activity.java:6662)

at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)

at android.app.ActivityThread.- wrap12(ActivityThread.java)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)

at android.os.Handler.dispatchMessage(Handler.java:102)

at android.os.Looper.loop(Looper.java:154)

at android.app.ActivityThread.main(ActivityThread.java:6077)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)

错误所在的行


private fun validateUserLogin(){
        val guardarEnXml = getSharedPreferences("datos_usuario_login", MODE_PRIVATE)
        txtUserLoginIdShare = guardarEnXml.getString("id", null)
        txtUserLoginPassShare = guardarEnXml.getString("pass", null)
Line 37: userLogin = UserLogin(txtUserLoginIdShare!!,txtUserLoginPassShare!!)
        userViewModel.loginUser(userLogin)
    }

对象的类别:


package com.example.app_2022.domain.model
import com.example.app_2022.data.model.UserLoginModel

data class UserLogin(var id: String?, var pass: String?)
fun UserLoginModel.toDomain() = UserLogin(id,pass)

另一个改变对象类型的类:


package com.example.app_2022.data.model
import com.example.app_2022.domain.model.UserLogin
import com.google.gson.annotations.SerializedName

data class UserLoginModel(
    @SerializedName("idUsuario") var id: String?,
    @SerializedName("contrasena") val pass: String?
)

fun UserLogin.toDatabase() = UserLoginModel(id = id, pass = pass)

android kotlin runtimeexception
1个回答
0
投票

logcat 说第 37 行有一个

NullPointerException
。所以
txtUserLoginIdShare
txtUserLoginPassShare
可以为空。 因为
SharedPreferences
中的所有值都可以为空。所以你应该在使用前检查它,而不是用
NotNull
强制它
!!

© www.soinside.com 2019 - 2024. All rights reserved.