Android-активы - FileNotFound

92
12

Я внутри фрагмента в этом классе:


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, чтобы я мог открыть его в своем классе NetworkList?

спросил(а) 2014-05-08T20:11:00+04:00 6 лет, 5 месяцев назад
1
Решение
110

если вы уверены, что у вас есть файл temp.xml внутри /assets, (должен находиться на уровне /src и /res внутри вашего проекта), просто попробуйте обновить F5 .


способ загрузки файла из assets верен:

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

ответил(а) 2014-05-08T20:36:00+04:00 6 лет, 5 месяцев назад
41

попробуйте следующее:


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

Я имею в виду исключить часть .xml. Я пробовал это за ту же ошибку, и это сработало для меня!

ответил(а) 2015-12-09T21:52:00+03:00 4 года, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема