Невозможно прочитать файл формы в Android
Я пытаюсь использовать ShapefileFeatureTable() для чтения файла формы в Android. Независимо от того, по какому пути я указываю, в нем указано исключение "Файл не найден".
try
{
ShapefileFeatureTable shpFileFeatTable = new ShapefileFeatureTable("/storage/sdcard/map.shp");
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
Может кто-нибудь мне помочь?
Примечание: я работаю над эмулятором Android. Также я использую библиотеку arcGIS.
4 ответа
Оказывается, он отображал шейп-файл. Мне пришлось очистить MapView, чтобы увидеть его.
<com.esri.android.map.MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</com.esri.android.map.MapView>
У меня была такая же проблема. Убедитесь, что другие файлы, связанные с map.shp, находятся рядом с ним в той же папке. Расширения других файлов, связанных с map.shp: .dbf .prj .sbn .sbx .shp.xml .shx
Посмотрите этот пример, если вам поможет
Ваше приложение, вероятно, не запрашивает разрешение на чтение из внешнего хранилища. Вам необходимо поместить следующее в AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
На данный момент ShapefileFeatureTable доступен только для чтения, но если в будущем этот класс получит возможности редактирования, и вы захотите выполнить редактирование, вашему приложению также потребуется запросить права на запись:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
См. http://developer.android.com/guide/topics/manifest/uses-permission-element.html для получения дополнительной информации.
Также возможно (но маловероятно), что ваш путь к файлу просто неверен. Если вы запрашиваете разрешения на чтение и по-прежнему получаете FileNotFoundException
, проверьте значение new File("/path/to/file.shp").exists()
, Если Android не видит файл, ArcGIS также не видит файл.