Неверный FileInputStream KmlLayer - PullRequest
0 голосов
/ 31 мая 2018

В моем классе MapsActivity.java Я создал, в дополнение к onCreate:

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    try {
        layer = new KmlLayer(mMap, generateNoteOnStorage(getApplicationContext(), "kmll.kml", contenuto), getApplicationContext());
        //layer = new KmlLayer(mMap, R.raw.kmll, getApplicationContext());

    } catch (Exception e) {
        e.printStackTrace();
    }
    try {
        layer.addLayerToMap();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    }

}

и

public FileInputStream generateNoteOnStorage(Context context, String sFileName, String sBody) {
        try {
            File root = new File(Environment.getRootDirectory(), "kmlfiles");
            if (!root.exists()) {
                root.mkdirs();
            }
            File gpxfile = new File(root, sFileName);
            FileWriter writer = new FileWriter(gpxfile);
            writer.append(sBody);
            writer.flush();
            writer.close();
            Toast.makeText(context, "Saved", Toast.LENGTH_SHORT).show();
            return new FileInputStream(gpxfile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

Я не могу понять, почему этокод неверный.Я уверен, что это связано с процедурой FileInputStream (а также потому, что я не очень дружу с ними).Это ошибка: screen

Я также попытался скопировать kmll.kml (сгенерированный файл) в res / raw и затем вместо generateNoteOnStorage(getApplicationContext(), "kmll.kml", contenuto) заменил его на R.raw.kmllи это сработало.

...