-2

我有一个 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);        

}


}
4

1 回答 1

0

我不知道问题出在哪里,但我只是将静态函数代码复制到非静态调用函数中,它就起作用了。

于 2012-04-20T07:27:13.303 回答