0

私はクラス Activity にこの関数を持っています:

private Bitmap getBitmapFromAsset(String strName) {
    AssetManager assetManager =this.getAssets();
    InputStream istr = null;
    try {
        istr = assetManager.open(strName);
    } catch (IOException e) {
        e.printStackTrace();
    }
    Bitmap bitmap = BitmapFactory.decodeStream(istr);
    return bitmap;
}

この関数は public クラス Game1 extends Activity にあります

しかし、次の場合にnullpointer例外が発生します:

AssetManager assetManager = this.getAssets();
Caused by: java.lang.NullPointerException at packagename.Game1.getBitmapFromAsset

私は何をすべきか?

4

2 に答える 2

0

まず、以下のようにコンテキストを作成します。

Context mTestAppContext = getContext().createPackageContext("com.project.test",
                Context.CONTEXT_IGNORE_SECURITY);

ここでは、「com.project.test」の代わりにパッケージ名を使用してください。そして、以下に示す「this」の代わりに上記のコンテキストを使用します。

AssetManager assetManager = mTestAppContext.getAssets();

上記の希望が役立ちます。

于 2014-09-18T12:19:11.543 に答える
0

getBitmapFromAsset()アクティビティの作成後に呼び出す必要があります。アクティビティの作成前に呼び出すと、 が返されますNullPointerException

コードは -

AssetManager assetManager = this.getAssets();

ここでthis = getActivity()and は null です。

于 2014-09-18T12:19:51.693 に答える