Предполагая, что вы предоставляете файл KML
в комплекте с APK
, вы можете попробовать что-то вроде хранения файла в каталоге src/main/assets
А затем попробуйте этот код, чтобы прочитать KML
, метод getAssets()
разрешит правильный путь к каталогу assets
во время выполнения.
try (InputStream fileStream = getAssets().open("earth.kml")) {
KmlDocument kmlDocument = new KmlDocument();
boolean isOk = kmlDocument.parseKMLStream(fileStream, null);
if (!isOk) {
Log.e(TAG, "onCreate: parsing Failed, is this a valid KML?");
} else {
FolderOverlay kmlOverlay = (FolderOverlay) kmlDocument.mKmlRoot.buildOverlay(mapView, null, null, kmlDocument);
overlays.add(kmlOverlay);
BoundingBox bb = kmlDocument.mKmlRoot.getBoundingBox();
mapView.zoomToBoundingBox(bb, true);
mapView.invalidate();
}
} catch (IOException e) {
Log.e(TAG, "onCreate: Error reading KMZ file", e);
}
Надеюсь, это поможет, но если это не так, возможно, ваши журналы и дополнительные разъяснения о том, как вы хотите предоставить (и / или хранить) файл, могли бы дать нам лучшее представление о том, что может бытьпроблема.