gpt4 book ai didi

android - 无法从 Util 类型对非静态方法 getIMEI() 进行静态引用

转载 作者:行者123 更新时间:2023-11-29 18:03:22 26 4
gpt4 key购买 nike

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String test = Util.imei();
}


import android.content.Context;
import android.telephony.TelephonyManager;

public class Util{
Context context;

public Util(Context context) {
this.context = context;
}

public String imei() {
TelephonyManager telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
return telephonyManager.getDeviceId();
}
}

出现错误“无法从 Util 类型对非静态方法 imei() 进行静态引用”。如果我将行更改为:

public static String imei() {
...
static Context context;

我收到一个错误并使应用程序崩溃。("E/AndroidRuntime(629): Caused by:java.lang.NullPointerException")

最佳答案

两种写法:

第一 非静态

public class Util {
Context context;

public Util(Context context) {
this.context = context;
}

public String imei() {
TelephonyManager telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
return telephonyManager.getDeviceId();
}
}

然后在onCreate方法中

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Util u = new Util(this);
String test = u.imei();
}

第二 静态

public class Util {
public static String imei(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
return telephonyManager.getDeviceId();
}
}

然后在onCreate方法中

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String test = Util.imei(this);
}

关于android - 无法从 Util 类型对非静态方法 getIMEI() 进行静态引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14626228/

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