我有一个 appwidget,它创建一个对象(传递它的上下文),然后在其他一些类上调用一个静态方法。
对静态方法的调用会引发 NullPointerException,我不知道为什么。
这是代码:
public String[] g(int count, Boolean h) {
String[] result = MyFactory.g(mContext, mDb, count, h);
if (result != null) {
m = result.length;
}
else {
m = 0;
}
return result;
}
在 MyFactory.g 引发异常。g 是一个静态函数。
什么可以在这里为空?
这似乎发生在我的一些用户身上,但不是在我的设备上……令人沮丧。
谢谢。
顺便说一句:我在我的应用程序上使用了 proguard,是否有可能因为 proguard 我没有得到整个堆栈跟踪(在静态函数内部)?
MyFactory 类:
public class MyFactory {
public static String[] g(Context mContext, SQLiteDatabase db, int count, boolean hasShortcut) {
SharedPreferences prefs =
mContext.getSharedPreferences(A.SHARED_PREFS_NAME, 0);
int type = Integer.parseInt(prefs.getString(mContext.getString(R.string.pref_type_key), "0"));
switch (type) {
case 1:
return T1.g(db, count, hasShortcut);
}
return D1.g(db, count, hasShortcut);
}
}