1

これは間違った方法である可能性があるため、そうである場合は教えてください。

メインアクティビティクラスからいくつかのコードを分離するために、別のクラスで getFileStreamPath (私が理解している限り、Context から派生したもの) を使用しようとしています。これを行うには、メイン アクティビティのコンテキストを他のクラスに渡し、それを使用してそのメソッドを呼び出します。

私の主な活動クラスでは:

LocalStorage lc = new LocalStorage(this);

次に、他のクラスで:

public class LocalStorage {
    Context ctx;

    public LocalStorage (Context c) {
        c = ctx;
        File lfile = ctx.getFileStreamPath("Activity.log");

    ....

しかし、LocalStorage クラスで渡されたコンテキストで getFileStreamPath を実行すると、NullPointerException が発生するため、明らかに何かが欠けています。

4

4 に答える 4

10

変数が逆になっています。

c = ctx;

する必要があります

ctx = c;

Context ctx渡された に初期化されていないものを割り当てているContext cため、常に null になります。

于 2012-08-27T14:00:06.980 に答える
1

タイプミスをしませんでしたか?

public LocalStorage (Context c) {
    ctx = c;
    ...
于 2012-08-27T14:00:41.607 に答える
1

c = ctx ???

Context ctx;

public LocalStorage (Context c) {
    c = ctx;
于 2012-08-27T14:02:20.613 に答える
0

コードのバグを特定するのは困難です。情報が不足しています。しかし、正しい方法でコンテキストを渡しているようです。だから問題は離れています。

于 2012-08-27T13:59:20.737 に答える