我正在尝试创建一个基本的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());
}
}
有谁知道导致异常的原因是什么?谢谢!
答案 0 :(得分:0)
所以我最终通过将XML文件移动到Asset文件夹并替换:
来解决我的问题File source = new File("animal.xml");
使用:
InputStream source = getAssets().open("animal.xml");