gpt4 book ai didi

java - Android 应用程序在重新启动时崩溃

转载 作者:行者123 更新时间:2023-12-01 13:14:43 24 4
gpt4 key购买 nike

启动应用程序时,它在以下方法中给出 java 空点错误

 private ParamHandler(Context context) {
Log.e("ParamHandler : Constructor : Enter");
mContext = context.getApplicationContext();
mTm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
mCm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
mVersionedPsc = VersionedPsc.getInstance(mTm);
msisdn = getPhoneNumber();
Log.e("ParamHandler : Constructor : Exit");
}

public static synchronized ParamHandler getInstance(Context context) {
if (mInstance == null) {
mInstance = new ParamHandler(context);
}
return mInstance;
}

这是我的 logcat 文件。在第 45 行和第 55 行中给出了空点错误

03-20 07:07:10.662: E/AndroidRuntime(1240): FATAL EXCEPTION: Thread-83
03-20 07:07:10.662: E/AndroidRuntime(1240): Process: com.instantmeter.starter, PID: 1240
03-20 07:07:10.662: E/AndroidRuntime(1240): java.lang.NullPointerException
03-20 07:07:10.662: E/AndroidRuntime(1240): at com.mobile.instantmeter.service.ParamHandler.<init>(ParamHandler.java:45)
03-20 07:07:10.662: E/AndroidRuntime(1240): at com.mobile.instantmeter.service.ParamHandler.getInstance(ParamHandler.java:55)
03-20 07:07:10.662: E/AndroidRuntime(1240): at com.mobile.instantmeter.service.MasterThread.run(MasterThread.java:110)
03-20 07:07:10.662: E/AndroidRuntime(1240): at java.lang.Thread.run(Thread.java:841)

最佳答案

一定要在ParamHandler(Context context)方法中发送/接收context,可能context为null。那么您不需要使用应用程序上下文设置 mContext 变量。

 private ParamHandler(Context context) {
Log.e("ParamHandler : Constructor : Enter");
//mContext = context.getApplicationContext();
mTm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
mVersionedPsc = VersionedPsc.getInstance(mTm);
msisdn = getPhoneNumber();
Log.e("ParamHandler : Constructor : Exit");
}

使用包含应用程序上下文的mContext变量的其他选项。

private Context mContext;

private ParamHandler() {
Log.e("ParamHandler : Constructor : Enter");
mContext = getApplicationContext();
mTm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
mCm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
mVersionedPsc = VersionedPsc.getInstance(mTm);
msisdn = getPhoneNumber();
Log.e("ParamHandler : Constructor : Exit");
}

关于java - Android 应用程序在重新启动时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22564034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com