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/