2013-01-31 77 views
1
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()进行静态引用”。 如果我行更改为:无法对类型Util的非静态方法getIMEI()进行静态引用Util

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

我得到一个错误和崩溃的应用程序( “E/AndroidRuntime(629):产生的原因:显示java.lang.NullPointerException”)

回答

3

两种方式来写它:

非静态

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); 
} 
+0

我假设你在'Activity'中创建'AsyncTask'。然后写'String test = Util.imei(TheActivity.this);'否则你必须构造'AsyncTask'传递'context' – pbaris

0

创建的参考在访问其方法之前,首先使用Util类。

Util util = new Util(); 
String _imei = util.imei(); 
0

您试图访问类中的方法没有为它创建一个对象。只有静态方法我们可以这样调用。在你的情况下,创建一个对象Util并使用该对象调用imei()

一样,

Util utilObj = new Util(); 
String imei = utilObj.imei(); 

希望这有助于。

相关问题