simpleXML和libcore.io.ErrnoException

时间:2013-05-14 10:35:23

标签: android simple-framework

我正在尝试创建一个基本的Android应用程序,其中使用SimpleXML对XML文件进行反序列化。我正在学习本教程:http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#deserialize

但是我得到了这个异常:libcore.io.ErrnoException:open failed:ENOENT(没有这样的文件或目录)

以下是活动的代码:

public class MainActivity extends Activity {

private TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    try {
        getAnimal();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public void getAnimal() throws Exception{
    Serializer serializer = new Persister();
    File source = new File("animal.xml");

    Animal animal = serializer.read(Animal.class, source);
    this.mTextView = (TextView) findViewById(R.id.textView1);
    mTextView.setText(animal.getSpecie()); 
}
}

有谁知道导致异常的原因是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

所以我最终通过将XML文件移动到Asset文件夹并替换:

来解决我的问题
File source = new File("animal.xml"); 

使用:

InputStream source = getAssets().open("animal.xml");