Android资产 - FileNotFound

时间:2014-05-08 17:11:20

标签: android xml android-assets

我在这个班级的片段中:

public class NetworksList extends Fragment{

同样在我的onCreate函数中,我有这段代码:

        XmlPullParserFactory pullParserFactory;
        try {
            pullParserFactory = XmlPullParserFactory.newInstance();
            XmlPullParser parser = pullParserFactory.newPullParser();

            InputStream in_s = getActivity().getApplicationContext().getAssets().open("temp.xml");
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(in_s, null);
            Toast.makeText(getActivity().getApplicationContext(), "size: ", Toast.LENGTH_LONG).show();
            parseXML(parser);

        } catch (XmlPullParserException e) {

            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

希望我尝试用来打开XML文件。我在资源文件夹中有我的XML文件,但我得到了:

05-08 18:03:11.034  24645-24645/pt.smartgeo.aees W/System.err﹕ java.io.FileNotFoundException: temp.xml
05-08 18:03:11.034  24645-24645/pt.smartgeo.aees W/System.err﹕ at android.content.res.AssetManager.openAsset(Native Method)
05-08 18:03:11.034  24645-24645/pt.smartgeo.aees W/System.err﹕ at android.content.res.AssetManager.open(AssetManager.java:316)
05-08 18:03:11.034  24645-24645/pt.smartgeo.aees W/System.err﹕ at android.content.res.AssetManager.open(AssetManager.java:290)
05-08 18:03:11.034  24645-24645/pt.smartgeo.aees W/System.err﹕ at pt.smartgeo.aees.NetworksList$2.onClick(NetworksList.java:77)

FileNotFound ...我如何知道放置temp.xml文件的位置,以便在NetworksList类中打开它?

2 个答案:

答案 0 :(得分:9)

如果您确定在temp.xml文件夹中有/assets文件(必须与项目内的/src/res处于同一级别),请尝试刷新, F5

assets加载文件的方式是正确的:

 InputStream is = getApplicationContext().getAssets().open("temp.xml");

答案 1 :(得分:0)

试试这个:

InputStream in_s = getActivity().getApplicationContext().getAssets().open("temp");

我的意思是消除“.xml”部分。我尝试了同样的错误,它对我有用!