-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 は静的関数です。

ここでnullになる可能性があるのは何ですか?

一部のユーザーには発生するようですが、私のデバイスには発生しません...イライラします。

ありがとう。

ところで:アプリでプロガードを使用していますが、プロガードが原因でスタックトレース全体(静的関数内)を取得できない可能性はありますか?

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 に答える