Java 将上下文传递给非活动类以使用AssetManager.getAssets()

Java 将上下文传递给非活动类以使用AssetManager.getAssets(),java,android,xml,dom,Java,Android,Xml,Dom,我正在开发一个android应用程序,我试图在assets文件夹中打开一个xml文件,其中包含对位于assets文件夹中的图像的引用。我在非活动类中使用AssetManager,并尝试将上下文传递给其构造函数,但没有成功。Eclipse中没有错误,但当我运行应用程序时,它会崩溃。下面是我用于这两个类和XML的代码 XML文件: <scene> <sprite> <img src="100789.jpg" positionx="100" positi

我正在开发一个android应用程序,我试图在assets文件夹中打开一个xml文件,其中包含对位于assets文件夹中的图像的引用。我在非活动类中使用AssetManager,并尝试将上下文传递给其构造函数,但没有成功。Eclipse中没有错误,但当我运行应用程序时,它会崩溃。下面是我用于这两个类和XML的代码

XML文件:

<scene>

   <sprite>
     <img src="100789.jpg" positionx="100" positiony="200" name="100789.jpg"/>
   </sprite>

   <sprite>
     <img src="100788.jpg" positionx="2" positiony="20" name="100788" />
   </sprite>

</scene> 
负载等级(屏幕)

我做错什么了吗

我还尝试将以下代码放入构造函数中,但没有成功:

public LoadingScreen(Game game, Context context) {
    super(game);
    this.context=context;

AssetManager gi = con.getAssets();
try {
    InputStream inStream = gi.open("assets.xml");
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document doc = builder.parse(inStream);
    doc.getDocumentElement().normalize();


}catch (Exception e) {
  e.printStackTrace();
  }
}

您试图在初始化
上下文
上下文
成员)之前访问它,导致
空点异常
。 move
AssetManager gi=con.getAssets()在方法内部

@Override
public void update(float deltaTime) {
  AssetManager gi = context.getAssets();
   ...

}

由于
AndroidGame
类继承自
活动
,因此必须记住活动生命周期。在调用
onCreate()
之前,活动没有
上下文
,在此之前调用
getApplicationContext()
将返回null。因此,需要在onCreate中设置上下文字段

基本上

public class Test extends AndroidGame {

    private Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        this.context = getApplicationContext();
    }

    ...

}

请发布堆栈跟踪他有
这个。上下文
con不受关注。我想这是一个打字错误。谢谢你指出这一点。不过,他说应用程序崩溃了:Eclipse中没有错误,但当我运行应用程序时,它会崩溃@拉古南丹
@Override
public void update(float deltaTime) {
  AssetManager gi = context.getAssets();
   ...

}
public class Test extends AndroidGame {

    private Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        this.context = getApplicationContext();
    }

    ...

}