Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
空对象引用上的java.lang.String android.content.Context.getPackageName()_Android_Kotlin_Android Intent - Fatal编程技术网

空对象引用上的java.lang.String android.content.Context.getPackageName()

空对象引用上的java.lang.String android.content.Context.getPackageName(),android,kotlin,android-intent,Android,Kotlin,Android Intent,我在科特林班工作。任何帮助或知识都将不胜感激!谢谢!:) 这是科特林班。 class UserData{ private var contex:Context?=null private var sharedRef:SharedPreferences?=null constructor(context:Context){ this.contex = contex this.sharedRef = context.getSharedP

我在科特林班工作。任何帮助或知识都将不胜感激!谢谢!:)

这是科特林班。

class UserData{
    private var contex:Context?=null   
    private var sharedRef:SharedPreferences?=null

    constructor(context:Context){
        this.contex = contex
        this.sharedRef = context.getSharedPreferences("userData", Context.MODE_PRIVATE)
    }

    fun loadPhoneNumber(): String? {  
        val phoneNumber = sharedRef!!.getString("phoneNumber","empty")
        if (phoneNumber.equals("empty")){
            val intent=Intent(contex, Login::class.java)
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            contex!!.startActivity(intent)
        }
        return phoneNumber
    }
}
在下面提到的此行中获取错误

val intent=Intent(contex, Login::class.java)
val intent=Intent(contex, Login::class.java)
从崩溃中获取的错误日志

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3126)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3269)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1960)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7094)
        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:975)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
        at android.content.ComponentName.<init>(ComponentName.java:130)
        at android.content.Intent.<init>(Intent.java:6751)
        at com.devfoster.findmyphone.startup.UserData.loadPhoneNumber(UserData.kt:25)
        at com.devfoster.findmyphone.startup.MainActivity.onCreate(MainActivity.kt:17)
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.content.Context.getPackageName()
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3126)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3269)上
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1960)
位于android.os.Handler.dispatchMessage(Handler.java:106)
位于android.os.Looper.loop(Looper.java:214)
位于android.app.ActivityThread.main(ActivityThread.java:7094)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.content.Context.getPackageName()”
位于android.content.ComponentName。(ComponentName.java:130)
位于android.content.Intent.(Intent.java:6751)
在com.devfoster.findmyphone.startup.UserData.loadPhoneNumber(UserData.kt:25)上
在com.devfoster.findmyphone.startup.MainActivity.onCreate上(MainActivity.kt:17)

您的构造函数块中有一个输入错误。试试这个:

this.contex = context
与此相反:

this.contex = contex
或者这个:

val intent = Intent(this, Login :: class.java)
与此相反:

this.contex = contex