我对 android Context 有一个小问题,我不知道如何解决这个问题。这是我正在使用的代码:
public class TestActivity {
Context context;
public static String getPackageVersion(){
try {
PackageManager pm = context.getPackageManager();
PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(), 0);
version = packageInfo.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
return version;
}
public static boolean checkClientApiVer(String clientApiVer){
int s = RPCCommunicator.strVerToIntVer(clientApiVer);
int c = RPCCommunicator.strVerToIntVer(getPackageVersion());
return (c>=s);
}
public boolean execute() {
serverApiVer = jsonObj.getString("server_api_ver");
Log.w("SERVER API VER","SHOW SERVER API VERSION : "+serverApiVer);
checkClientApiVer(serverApiVer);
}
它在这一行中显示 Nullpointer 异常:
PackageManager pm = context.getPackageManager();
实际上我无法使用 this.getPackageManager()
或 TestActivity.getPackageManager()
并且我无法将 context
设置为这个
。
有什么建议吗?
最佳答案
@Roflcoptr 指出了基本的,但实际上,你的类没有扩展 Activity ,所以它不是上下文,将它更改为:
public class TestActivity extends Activity
如果您希望它成为一个实际的 Activity ,或者,如果它应该只是一个辅助类,请在实例化时将 Activity 传递给它。
关于android上下文空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7428799/